我们从事的这个行业需要plc保持一个准确的时钟,以进行定时、时限、记录查询等信息。从原来的S7-200PLC到现在的S7-200SMART、S7-1200都是需要此功能。工程上从产品完工到项目调试周期有长有短,短的话半年左右长的话可能需要几年时间,而且我们的产品是周期性按季节运行,不是一上电就不停了。
PLC的内部超级电容只能保持实时时钟7天左右,完全不能满足要求。我们采用的是官方说法,增加电池板用于保持实时时钟,触摸屏的时钟同步PLC的时钟。但是这就造成了一个问题,一些项目需要与第三方设备通讯,像S7-200SMART及S7-1200增加电池卡后占用PLC本体扩展,这就需要再下个第三方通讯模块,很是麻烦也不经济。我问过一些人,还有西门子的专家有没有办法让西门子的触摸屏像做个NTP时间校准服务器一样,使PLC来同步触摸屏的时钟。都说没有这个功能,没办法实现。
最近使用MCGS的触摸屏,我发现了这个方法,感觉很好。触摸屏可以通过脚本程序将自己时钟写入到PLC。本程序使用S7-200 SMART的PLC、触摸屏使用MCGS的TCP1071Gt,编程软件使用的MCGSPro版,老版屏及软件应该也可以。
现在就做一下说明
1、我程序中原来在触摸屏上有个手动校准时钟功能V0.3,更改的时候没有去掉,还是带着,害怕客户指定使用西门子屏。SM0.1是上电校准一下,SM0.4是每分钟校准一下,这是我设置的一个校准周期,当然也可以设定一个时间点或设置成一定周期,按自己要求来修改即可。
另我这使用的是一个时钟库,保证数据都是整型不是16进制BCD码。
2、在触摸屏上后台策略中,新建行,将需要校准变量赋值。这里这个年-2000是由于西门子的PLC此处是两位数,本来想着把年取后两位的,结果没有找到相应命令,就-2000处理了。此策略按1000ms周期循环执行。
3、这是监控数据,VB1020是校准的时钟,VB1000是读取的PLC实时时钟。这里两个都用了时钟库,都是十进制整型。
4、这是触摸屏的显示实时时钟
5、这是原来的时钟校准项,实际现在应该改为触摸屏时间校准组态,这个还没有改