控制工程师论坛

现场总线

如何使用 SINAUT MICRO SC 同步 S7-200 的实时时钟

bubli
bubli

2008-11-14

1.介绍:
下文介绍如何实现用中心站同步远程站的系统时间。

一个包含 S7-200 CPU 和 SINAUT MD720-3 调制解调器的远程站是通过 GPRS 连接到中心站的( 图 01 )。中心站的 SINAUT MICRO SC 与所有的配置好的远程站通信。

通过时钟同步,您可以认为 SINAUT MICRO SC 总是把 PC 的 UTC 时间传送出去。并没有自动转换到远程站的本地时区。本文提供一个功能块用于实现转换远程站的本地时间。并且描述了为实现成功同步实时时钟您必须组态的远程站的步骤。 


图 01: 程序块图

2. 组态 SINAUT MICRO SC
通过如下步骤激活实时时钟传送: 
 

编号程序 ( 见 图 01)
1打开 SINAUT MICRO SC
2标识远程站。
3点击 “编辑”。
4选择“通过时钟同步进行状态监控”。
5指定 SINAUT MICRO SC 传送时间的间隔。 ( 默认:15 分钟 )
6点击“确定”。
表 01:配置 INAUT MICRO SC

每隔 15 分钟发送一个时间戳到远程站。

3. 配置远程站:

3.1 时间校正总览
图 02 说明整个时钟同步的过程。 

图 02:转换本地时间的时钟同步

3.2 接收时钟同步报文
SINAUT MICRO SC 库中的程序块 “ WDC_RECEIVE ” ( 图. 03 ) 是用于接收时间的。 这个程序块通过接收 SINAMUT MICRO SC 发送的新报文更新 “NEWTIME” 8个字节缓冲区。这样,输出变量“ NEWTIME_RECEIVED” 在每个循环中置一。

图 03:程序块“ WDC_RECEIVE ”

时间接收缓冲区的起始地址必须用指针传送。这些可以在例程中看到时间缓冲区的地址为 &VB600 开始的地址。(表 02)。
 

字节描述
VB600年 (0-99)
VB601月 (1-12)
VB602日 (1-31)
VB603小时 (0-23)
VB604分钟 (0-59)
VB605秒 (0-59)
VB607保留 - 总是为 0
VB608星期  (1-7) - 1 = 星期日 , 2 = 星期一 等等.
表 02:时钟缓冲区

3.3 调用时间转换程序块
如果 SINAUT MICRO SC 发送一个时钟报文,报文被存储到一个时钟缓冲区内。该时钟是对应于 UTC  时间,不考虑本地的时区。如果您希望使用该时钟设置 S7-200 CPU 的实时时钟,首先需要转换。可以下载的程序块“Time_Correct”( 图 04 ) 处理该转换。 您可以按如下步骤把该功能使用到您的程序中:

如下的程序块“Time_Correct”参数必须要设置:
 

参数数据大小描述
CorrectINT CPU 的时间与 UTC 时间的偏差 (-12 to 12)
Recv_Time8 字节8 字节时钟缓冲区的起始地址,在程序块 WDC_RECEIVE 的输入参数“NEWTIME”定义的。 起始地址使用指针传递。
Corr_Time8 字节8 字节时钟缓冲区的起始地址用于校正后的时间存放。起始地址使用指针传递。
表 03 :程序块“Time_Correct”参数

图 04: 程序块“Time_Correct”

3.4 设置实时时钟
需要设置 CPU 的实时时钟,您必须调用程序块“SET_RTC” 并指定转换后的时间地址。 (图  05)。 您应该同样的在新时钟收到后调用“SET_RTC”。

图 05: 程序块“SET_RTC”

回帖

评论1

首页 | 登录 | 注册 | 返回顶部↑
手机版 | 电脑版
版权所有 Copyright(C) 2016 CE China