西门子plc的定时器是有限的,并且使用起来并不是太方便,尤其是在FB程序模块中使用时必须通过引脚指定定时器编号,当使用较多时非常麻烦。由于我使用定时器的场合对时间精度要求不高,一般以秒为单位就足够,比如计算设备的运行台时,通过时间周期控制设备等,因此我习惯使用秒脉冲计数的方式代替计时器功能,这样封装在FB程序块中只需要通过引脚输入一个秒时钟信号就可以了。
脉冲计数代替定时器的一个关键就是时钟脉冲要准确,曾经在AB的1769PLC上使用秒脉冲计数的方式计算设备运行时间时,发现设备连续运行一天计算的运行台时竟然比24小时要少,*后发现就是秒脉冲时基不准确。当时是使用了2个500毫秒定时器产生秒时基信号,因为扫描周期的存在,每个秒时基的实际时间是1秒+扫描周期,*后误差累积造成计时不准确,后来为了避免这种情况只好把时基发生程序放在周期任务里。
西门子plc相比较而言就方便多了,因为西门子200系列有系统时间标志位可以直接产生时基信号,300和1500等有时钟存储器功能可以设置,如下图。一般设置MB0为时钟存储器字节地址,这样就有8个占空比为50%的时基信号可以使用,时基*短0.1秒,*长2秒,可以满足大多数情况。
如果要想生成小于0.1秒的时基信号,**用循环中断的方法实现,如果要生成分钟时基、小时时基甚至日、月时基怎么办呢?也很简单,结合系统时钟读取程序,把CPU的系统时间读取出来,然后根据时间数据就可以很容易产生,如下图。当秒数据=0时就可以驱动分钟脉冲信号;当分数据=0且秒数据=0时就可以驱动小时脉冲信号,以此类推。
在平时的项目中,由于时间紧,报警控件一般直接拉出来不做过多组态就用,其实这个控件有大学问,接下来我们一起来看看。首先打开wincc项目,在图形编辑器中新建画面,然后分别插入Wincc AlarmControl、Wincc Online TableControl、Wincc RulerControl控件,如图: 1、Wincc AlarmControl 打开组态对话框,常规,窗口标题栏,标题栏的组态可以选0-无、1-正常、2-窄;显示文本也可更改,窗口的移动,调整尺寸,关闭等属性可选择,样式也有多种可供选择,以及滚动跳的设置,时间基准的设置。属性里面主要可以组态打开画面显示的内容,服务器的选择,排序,煤业的消息数等等。 常见的样式如图所示: 打开画面显示的列表可以选择如图: 参数可以调节列标题和行标题,如图: 效果里面主要是对表格里面的颜色设置,这个可以根据个人审美配色,我觉得西门子给的wincc库里面颜色搭配不错,大家可以参考,如图: 字体选择包含字体的样式和大小,如图: 消息块即消息列表,如图: 操作员消息,这里可以组态一下,当作操作记录用,如图: 工具栏的组态可以根据项目需求保留必要的组件即可,如图: 状态栏和工具栏原理一样,如图: 到此,报警控件基本组态完毕。 2、同理组态Wincc Online TableControl控件的外观,时间列和数值列组态如图所示: 3、Wincc RulerControl控件组态,改变他的显示位置即字符长度,块组态如图: 一定要关联数据来源,如图所示: 至此组态完毕,仿真界面如图: 数据导出 报警筛选 |