新闻动态
技术中心
技术中心
当前位置:科达自控 >> 服务支持 >> 技术中心 >> 浏览文章
WinCC 和S7之间的时间同步方法
作者:张兆华 日期:2020年03月09日 来源:技术部 浏览:

内容导读:下面的方法只能进行时间设置而不能完成时间同步的功能。因为必须考虑到延迟,比如报文的处理时间,C 脚本的运行时间等,因此这个方法在精度方面不如真正的时间同步精确。

下面的方法只能进行时间设置而不能完成时间同步的功能。因为必须考虑到延迟,比如报文的处理时间,C 脚本的运行时间等,因此这个方法在精度方面不如真正的时间同步精确。    
    1.创建一个数据块 ,其中有一个 "DATE_AND_TIME" 
类型的变量和一个布尔变量。当元素"Flag" 在WinCC中被置1,程序就调用系统函数SFC0  "SET_CLK"。D 
B1中的触发变量"Flag" ( DB1.DBX 8.0)在WinCC脚本中被SetTagBitWait("DB1_FLAG",TRUE) 置1。 
    因此仅当此C脚本在WinCC中被调用时,时间才被设置。SFC0 必须先添加到Step7程序的块文件夹中。 
在此段程序中,DB块中的各个时间变量被写到作为 SFC0参数的"DATE_AND_TIME"类型的本地变量"DateAndTime"中。 
  用 "SET_CLK" 设置完时钟后,触 发变量"Flag"被复位。 注意:在此段程序中,本地变量"DateAndTime"存储在以0为起始地址的本地数据堆栈中。如果不得已要把这个变量分配到别的地址,同 时对传送指令参数化时,必须要考虑到地址分配的问题。  
     2.为“年”新建一个 "Unsigned 8-bit 
value"类型的变量,对其进行格式变换 ByteToBCDByte,然后为其在DB块中选择相应的字节地址:  在WinCC 
中创建剩下的变量。 选择"Unsigned 16-bit value" 类型然后改变格式为 WordToBCDByte 
,然后在DB块中选择实际的字节地址。   
     3.最后,在WinCC中创建一个C脚本来读取系统时间并进行拆分,然后把它们写到DB1中。

上一篇文章:PH5矿用本质安全型调度显示屏的应用 下一篇文章:没有了
相关链接
发表评论
用户评论
版权所有 山西科达自控股份有限公司 晋ICP备09004627号    晋公网安备 14019202000008号     
官方微信
新浪官方微博
腾讯官方微博