问题: 现场应用使用的是S7-300的CPU,要做时间同步功能,运用的是NTP方式同步。现场实际测试发现系统时钟和本地时间相差8小时,用TIA博途编程能正常转换,用经典STEP7,却无法转换,该如何解决? 解答: 测试硬件 : CPU 314 订货号:6ES7 314-1AG14-0AB0 测试环境 : STEP7 V5.6 1. 建立存储系统时钟和本地时钟的DB块 2. 通过SFC1“READ_CLK”读出CPU的基本时间 3. 根据标准库“Miscellaneous Blocks”的UDT60结构,组态一个带有计算参数的数据块,用于本地时间以及夏令时和冬令时之间的转换数据。这个DB必须被指定作为“BT_LT”的“WS_DAT”输入参数 数据块的内部结构: 4. 指定读取的基本时间作为“BT_LT”的“BT”输入参数。计算出本地时间 关于错误代码的解释: 最终的测试结果: 总结: 经过测试发现,客户一直无法成功的原因,主要是因为STEP7在调用了FC61时间转换块之后,仍然需要调用加载其他程序块,不能仅调用FC61块,如下图所示: 但是如果使用TIA博途软件的话,这些块会自动调用,不会存在这样的状况,这个情况也是误导大家的地方。 另外对于S7-1200/S7-1500的控制器,在使用NTP时间同步的时候,本地时间会根据系统时间自动换算,不需要写任何程序,所以建议以后多用S7-1200/S7-1500控制器。 附言:时间同步中常用到的概念 UTC(Universal Time Coordinat ):协调世界时,又称世界统一时间、世界标准时间、国际协调时间。协调世界时是以原子时秒长为基础,在时刻上尽量接近于世界时的一种时间计量系统。 系统时钟:是PLC的基准时间,在PLC中可以在系统属性中设置,也可以通过程序进行设置。在时间同步中一般是UTC的时间。 本地时钟:根据所在的时区,自动计算出的时间。例如北京时间与UTC的时差均为 8,也就是UTC 8。 NTP(Network Time Protocol ):网络时间协议,是用来使计算机时间同步化的一种协议,NTP的目的是在无序的Internet环境中提供精确和健壮的时间服务。 SNTP(Simple Network Time Protocol ):简单网络时间协议,由 NTP 改编而来,主要用来同步因特网中的计算机时钟。 ☎ 联系我们 公司电话:0531-88119326/88119327/ 88064968/88119302/88119306/88119307 公司网址:www.jinanlukong.com 公司地址:济南市历下区解放路6号鼎峰中心14层 |
|
来自: 晶晶妈妈eatn6c > 《文件夹1》