当前位置: 主页 > PLC控制

S7-200如何比较日期

想在程序中加入时间比较,当当前日期与程序中的预设日期一致,程序输出一个信号,去控制现场的阀门开关,如何编程,请高手指点。最好能提供程序实例,谢谢!

最佳答案

1、详见《S7-200如何读取时钟》:
CPU221、CPU222没有内置的实时时钟,需要外插“时钟/电池卡”才能获得此功能。CPU224、CPU226和CPU226XM都有内置的实时时钟。
、为了提高运算效率,应当避免每个程序周期都读取实时时钟。实际上可读取的最小时间单位是1秒,可每秒读取一次(使用SM0.5上升沿触发读取指令)。
、用编程软件(Micro/WIN)的菜单命令PLC>TimeofDayClock…,通过与CPU的在线连接设置,完成后时钟开始走动
、编用户程序使用Set_RTC(设置时钟)指令设置
、Micro/WIN可以通过任何编程连接实现实时时钟的设置。
使用S7-200的READ_RTC(读取实时时钟)和SET_RTC(设置实时时钟)指令时,读取和设置的数据格式都是BCD码的。如果觉得不便计算、处理,可使用ClockInteger指令库。
Clock_Integer指令库用于将BCD码格式的S7-200日期、时间转换为十进制整数格式,以及将十进制整数格式的日期、时间值设定为S7-200时钟。
、要使用Clock_Integer指令库,须遵循下列步骤:
取得Clock_Integer指令库文件,并添加到编程软件STEP7-Micro/WIN中;
按照要求编写用户程序调用Clock_Integer指令库。
、请见《《西门子S7-200·LOGO!·SITOP参考》V0.92版(更新版)(2008.02.15)》,其中有关如何读系统时钟及如何添加库指令的说明,下载:
htTP://www.ad.siemens.com.cn/download/searchResult.ASpx?searchText=A0136
2、特别注意!在做时间比较时两者的数据类型必须是为十进制整数格式。要计算时间需要将BCD格式的时钟数据与十进制的数据之间的转换,使用Clock_Integer指令就可以实现。
3、时钟读写指令缓冲区格式见上传的图片1,数据格式为BCD码。
4、使用Clock_Integer指令后的缓冲区见上传的图片2.,数据格式为十进制整数格式。
5、读取时钟例题:
如何读取S7-200CPU时钟并以整型格式输出?如何用整型值设置S7-200时钟?
http://support.automation.siemens.com/CN/llisapi.dll?func=cslib.csinfo&objId=23430013&nodeid0=10805345&load=treecontent&lang=zh&siteid=cseus&aktprim=0&objaction=csview&extranet=standard&viewreg=CN
6、使用Clock_Integer指令:
《西门子S7-200?LOGO!?SITOP参考》下载:
http://www.ad.siemens.com.cn/download/searchResult.aspx?searchText=A0136

图片说明:

S7-200如何比较日期S7-200如何比较日期S7-200如何比较日期S7-200如何比较日期

提问者对于答案的评价:
非常感谢,解答很详细。

专家置评

已阅,最佳答案正确。

  • 关注微信

猜你喜欢

微信公众号