请问高手:
怎么在wincc运行界面里面输入中英文文字,并且能连接到报警记录里面显示。关机后下次开机的时候还能保存显示输入的文字。
这个比较棘手。
谢谢!
最佳答案
我以前的做法是安装[RICHTX32.OCX]控件,注册后在WinCC画面里面调用[RICHTX32.OCX]控件进行备忘文字输入且当输入换行时保存。
1 建立两个内存字符串变量用来保存文本文档的路径(ProjectPath)和文件名(FileName);
2 在当前项目下建立文本文件DiaryBook.txt,用来保存用户输入的文字内容;
3 WinCC启动初始画面时(不是文字输入画面),执行C脚本获取当前项目的路径到ProjectPath变量,然后FileName就等于ProjectPath+DiaryBook.txt;
用到的C脚本:
char szProjectFile[_MAX_PATH+1];
DM_DIRECTORY_INFO dmDirInfo;
CMN_ERROR Error;
char * psz=NULL;
char dir[255];
if(DMGetRuntimeProject(szProjectFile,_MAX_PATH+1,&Error)==FALSE)
{
return;
}
if(DMGetProjectDirectory("",szProjectFile,&dmDirInfo,&Error)==FALSE)
{
return;
}
SetTagChar("ProjectPath",dmDirInfo.szProjectDir );
strcat(dmDirInfo.szProjectDir,"DiaryBook.txt");
SetTagChar("FileName",dmDirInfo.szProjectDir );
4 打开文本输入画面,拖入加载的[Microsoft Rich Textbox Contorl 6.0(SP6)]控件重命名为[RichtextCtrl1],[RichtextCtrl1]就是用来进行文字备忘输入的文本框了;
5 修改拖入的[RichtextCtrl11]控件的FileName属性,连接到上面建立的FileName变量。这样当运行当前画面时,[RichtextCtrl1]控件就会自动打开DiaryBook.txt文件读取内容显示出来了;
6 接着在[RichtextCtrl1]控件的KeyDown事件下输入vb脚本,实现当按下[回车键]时保存当前输入的文本到文件;
用到的VB脚本:
If KeyCode=13 Then
Dim objTag
Dim FileName
Set objTag = HMIRuntime.Tags ("ProjectPath")
FileName = objTag.Read
''SaveFile
item.saveFile FileName
End If
7 如果为了放止没换行时导致数据未保存,只能在画面上添加一个闪烁的按钮来提示用户手动保存。
手动保存按钮背景闪烁默认为[否]状态,可以在RichtextCtrl控件的Change事件里面开启按钮闪烁。
用到的VB脚本:
ScreenItems("SaveButton1").FlashBackColor = True
如果闲这样还不够,那就直接用秒触发执行ScreenItems("RichtextCtrl1").saveFile FileName指令,每秒钟保存一次文件了。
<完>
提问者对于答案的评价:
虽然很详细,很复杂,但是我也没学会。
还是要谢谢高手。
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc264880.html