Citect2018R2使用报警页面功能做操作记录1
这一篇学习笔记我在新浪博客记录过,地址是Citect2018R2使用报警页面功能做操作记录1_来自金沙江的小鱼_新浪博客 (sina.com.cn)
这两天练习了做报警页面,稍微扩展一下,可以做操作记录功能。
使用unity v13.1新建一个项目,简单配置一下硬件,新建变量:
新建程序段
这个练习主要是上位机功能,PLC程序不严密,仅作配合作用。
在citect2018R2新建一个项目程序,使用通讯想到连接PLC模拟器。
新建变量表如下:
定义四种字体
定义两种报警分类4和5
报警摘要格式为
{DATE,12}^t{TIME,10}^t{TAG,20}^t{NAME,20}^t{SumState,10}^t{Type,14}
以此为日期、时间、报警标签、报警名称、状态、是否确认。
新建报警变量,其中Alarm1至Alarm32为类别5,按钮为类别4
新建一个页面“泵操作页面”用于操作水泵,放置几个按钮用于两个泵的启动停止操作以及页面跳转。
泵操作按钮当鼠标按下时,对应泵动作变量为1,鼠标松开时,泵动作按钮对应变量为0
新建一个cicode函数,用于报警过滤
FUNCTION MyAlarmFilter(INT myAN,STRING class)
INT grp1=GrpOpen("AlarmFilter1",1)
StrToGrp(grp1,class)
AlarmSetInfo(myAN,2,class)
GrpClose(grp1)
END
新建一个页面,名字叫做“报警记录”,最终通过上面的页面按钮弹出这个页面。而面上放置20个cicode控件和6个静态文本,两个按钮,用于翻页,第1个cicode编号是10
第1个cicode控件的函数是
AlarmDsp(10,20,10);
表示从编号为10的控件开始连续20个显示报警信息。
“报警记录”页面的事件“在页面显示时”调用这个函数
MyAlarmFilter(10,5)
表示从编号为10的cicode控件开始,只显示分类为5的报警信息(只显示报警,不显示按钮操作记录)
“泵操作画面”的“查看报警记录”按钮的鼠标点击事件写下面的脚本
PagePopUp("报警记录");
WinPos(340,40);
表示弹出画面,弹出的画面左上角位置在340,40
新建一个页面,叫做“操作记录”页面,同样放置20个cicode控件和6个静态文本。
第1个cicode脚本为
AlarmDsp(10,20,10);
每一个cicode控件的LBUTTON_UP事件脚本为
AlarmAck(0,0);
表示报警确认
该页面的“在页面显示时”事件调用这个函数
MyAlarmFilter(10,4)
表示从编号为10的cicode控件开始,只显示分类为4的报警标签。
“上一页”按钮的鼠标点击事件脚本为
AlarmDspPrev(10);
“下一页”按钮鼠标点击事件脚本为
AlarmDspNext(10);
在“泵操作画面”的“查看操作记录”按钮的鼠标点击事件写下面的脚本
PagePopUp("操作记录");
WinPos(340,40);
表示弹出画面“操作记录”,左上角位置是340,40
运行一下计算机设置向导,将“泵操作页面”设置为起始画面。
保存、编译、运行。
点击几下泵操作按钮,在操作记录可以看到,在PLC模拟器触发报警,在报警记录画面可以看到报警记录。在操作记录里面可以看到操作记录。
操作记录初步练习就做到这里。我把例子放进了我的百度网盘,地址是
链接:https://pan.baidu.com/s/1xI2FPvZFQcbG9rgJMO5W_A
提取码:1234
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?