发表于:2019/10/23 9:23:44
#0楼
看到之前有帖子讨论Vijeo Citect和PLC的时间同步,先把该问题的文字版放这里,供大家搜索:
在Vijeo Citect电脑中,怎样将电脑的系统时间和PLC的时间同步?
使用函数TimeSet(),可以用PLC的时间来修改电脑的时间
这个问题在很早以前还真的碰到过,当时的条件落后,整个系统的时间是这样同步的:
总部系统有GPS天线,软件支持接收IGIB格式的标准时间,这样,主SCADA系统就有了标准时间,主系统会通过网络把标准时间写到PLC中,当时是Quantum PLC, 有硬件时钟,每天误差正负8秒,梯形图编程又做了个软件时钟,这个时钟受扫描时间的影响,也不太准。硬件时钟需要写一些程序来控制时间寄存器,这个各家PLC不一样的,要参见系统手册。软件时钟只要改寄存器值就行了。
各个PLC又有现场的HMI,就是类似Citect的软件,当时的软件有个调用系统命令的函数, 我就读出PLC中的时间,用dos命名 time 12:00:00 来修改电脑时间,相当于在cmd命令行中每天检测到PLC中的时间是12:00:00的时候把系统时间设成12点。。。
这样的时间当然进度有限。在很多关键应用中,如电厂,要求记录事件的精度高于1ms,这种情况下,就需要使用专门事件记录模块了(SOE),这种模块有IRIG-B等标准时间格式接口,模块中内置处理器,会把IO的变化记录下来并打上时间标签,然后用专门的协议传输到PLC及上位,就实现了精准的时间记录。这种模块顺便也可以把PLC时间对准,当然也有一个专门给PLC校时的模块。
现在在时间要求不苛刻的情况下,可以反过来,由HMI或PLC取互联网时间,或由某台HMI的时间作为标准时间,这个时间精度足够普通应用。施耐德的以太网模块很多都支持取互联网时间的,互联网有专门的时间同步协议,考虑了网络传输时间的影响,还是比较准的,但具体精度我好像查过,没得到一个准确的数据,貌似是10ms以内。
在Vijeo Citect电脑中,怎样将电脑的系统时间和PLC的时间同步?
使用函数TimeSet(),可以用PLC的时间来修改电脑的时间
这个问题在很早以前还真的碰到过,当时的条件落后,整个系统的时间是这样同步的:
总部系统有GPS天线,软件支持接收IGIB格式的标准时间,这样,主SCADA系统就有了标准时间,主系统会通过网络把标准时间写到PLC中,当时是Quantum PLC, 有硬件时钟,每天误差正负8秒,梯形图编程又做了个软件时钟,这个时钟受扫描时间的影响,也不太准。硬件时钟需要写一些程序来控制时间寄存器,这个各家PLC不一样的,要参见系统手册。软件时钟只要改寄存器值就行了。
各个PLC又有现场的HMI,就是类似Citect的软件,当时的软件有个调用系统命令的函数, 我就读出PLC中的时间,用dos命名 time 12:00:00 来修改电脑时间,相当于在cmd命令行中每天检测到PLC中的时间是12:00:00的时候把系统时间设成12点。。。
这样的时间当然进度有限。在很多关键应用中,如电厂,要求记录事件的精度高于1ms,这种情况下,就需要使用专门事件记录模块了(SOE),这种模块有IRIG-B等标准时间格式接口,模块中内置处理器,会把IO的变化记录下来并打上时间标签,然后用专门的协议传输到PLC及上位,就实现了精准的时间记录。这种模块顺便也可以把PLC时间对准,当然也有一个专门给PLC校时的模块。
现在在时间要求不苛刻的情况下,可以反过来,由HMI或PLC取互联网时间,或由某台HMI的时间作为标准时间,这个时间精度足够普通应用。施耐德的以太网模块很多都支持取互联网时间的,互联网有专门的时间同步协议,考虑了网络传输时间的影响,还是比较准的,但具体精度我好像查过,没得到一个准确的数据,貌似是10ms以内。