西门子PLC模块中国北京一级经销商
西门子PLC模块中国北京一级经销商
S7-200的实时时钟
S7-200的硬件实时时钟可以提供年、月、时、分、秒的日期/时间数据。
CPU221、CPU222没有内置的实时时钟,需要外插“时钟/电池卡”才能获得此功能。CPU224、CPU226和CPU226 XM都有内置的实时时钟。
S7-200的时钟精度典型值是2分钟/月(25°C),Z大误差7分钟/月(0 - 55°C)。
为了提高运算效率,应当避免每个程序周期都读取实时时钟。实际上可读取的Z小时间单位是1秒,可每秒读取一次(使用SM0.5上升沿触发读取指令)。
使用程序读取的实时时钟数据为BCD格式,可在状态图中使用十六进制格式查看。
CPU靠内置超级电容(+外插电池卡)在失去供电后为实时时钟提供电源缓冲;缓冲电源放电完毕后,再次上电后时钟将停止在缺省值,并不开始走动。
要设置日期、时间值,使之开始走动,可以:
用编程软件(Micro/WIN)的菜单命令PLC > Time of Day Clock...,通过与CPU的在线连接设置,完成后时钟开始走动
编用户程序使用Set_RTC(设置时钟)指令设置
Micro/WIN可以通过任何编程连接实现实时时钟的设置。
用 Micro/WIN 设置时钟
通过编程软件 Micro/WIN 设置 CPU 的时钟,必须先建立编程通信连接。
在 Micro/WIN 菜单中选择“PLC > 实时时钟”命令,打开“PLC 时钟操作”对话框:
PLC 实时时钟设置界面
要设置时钟的 CPU 网络地址,取决于在“通信”界面中的选择
设置日期:选择需要修改的数据字段,直接输入数字,或者使用输入框右侧的上下按钮调整
设置时间:选择需要修改的数据字段,直接输入数字,或者使用输入框右侧的上下按钮调整
读取 PC 时钟:按此按钮可以读取安装 Micro/WIN 的 PC 机的本机时间
读取 PLC 时钟:按此按钮读取 PLC 内部的实时时钟数据
根据需要选择夏时制调整选项
按“设置”按钮,将上面的时钟日期数据写入 PLC
时钟读写指令缓冲区格式
Read_RTC(读时钟)和Set_RTC(设置时钟)指令靠数据缓冲区在用户程序与硬件芯片间交换数据,它们的缓冲区格式相同。
时钟缓冲区
地址偏移 T T+1 T+2 T+3 T+4 T+5 T+6 T+7
数据内容 年 月 日 小时 分钟 秒 0 星期
数值范围
BCD
(16进制) 00-99 01-12 01-31 00-23 00-59 00-59 0 0-7*
* 1 = 星期日,7 = 星期六,0 = 表示禁止计星期
T 就是缓冲区的起始字节地址,可以由用户自由设置(在CPU允许的V存储区范围内)。如果设置T为VB100,那么读取时钟后,“年”的信息就会保存在VB100中,“月”保存在VB101中。
常问问题
实时时钟在 CPU 停电一段时间后停止,如何在停电较长时间时保证实时时钟正常走动?
在 CPU 停电时,实时时钟的走动靠 CPU 的内置超级电容供电。如果停电时间较长,只能在 CPU 上插入电池卡以保持时钟。
电池卡
写时钟指令(TODW)为何不能正常改写时钟内容?
写时钟指令需要严格按照8个字节的时钟缓冲区格式,设置相应的数据单元,任何不合格的数据都可能造成不能写入的现象。注意数据的格式必须是BCD格式,可以说是将10进制数换成16进制表示,如16#59(59H)就是59(秒/分等)。
执行写时钟指令要保证缓冲区所有字节都包含合法数据;仅修改某些数据时,其他字节不能包含非法数值,否则会发生错误。
写时钟指令必须使用一次性的脉冲(沿)触发条件,不能持续激活写时钟指令。
读写的时钟数据如何在十进制(整数)和BCD数据之间转换?
要计算时间需要将BCD格式的时钟数据与十进制的数据之间的转换,使用相应的转换指令就可以实现。
可参考 Clock_Integer 库指令及其使用。
TP170、TP170 micro、K-TP 178 micro 与 S7-200 相连接如何做“时钟同步”?
TP170默认的时钟格式与S7-200时钟指令所读取的时间日期格式有所区别,读出的时钟需要改变格式才能与TP170等做时钟同步。在TP170的配置软件ProTool的在线帮助中有相关的介绍。