编写日期程序

用s7200控制一个灯 周一到周五7:00到17:00关闭 其余时间打开。周六日全天打开。

最佳答案

关键是如何读系统时钟:
S7-200的硬件实时时钟可以提供年、月、时、分、秒的日期/时间数据。
CPU221、CPU222没有内置的实时时钟,需要外插“时钟/电池卡”才能获得此功能。CPU224、CPU226和CPU226 XM都有内置的实时时钟。

S7-200的时钟精度典型值是2分钟/月(25°C),最大误差7分钟/月(0 - 55°C)。

 为了提高运算效率,应当避免每个程序周期都读取实时时钟。实际上可读取的最小时间单位是1秒,可每秒读取一次(使用SM0.5上升沿触发读取指令)。

 使用程序读取的实时时钟数据为BCD格式,可在状态图中使用十六进制格式查看。

CPU靠内置超级电容(+外插电池卡)在失去供电后为实时时钟提供电源缓冲;缓冲电源放电完毕后,再次上电后时钟将停止在缺省值,并不开始走动。

要设置日期、时间值,使之开始走动,可以:

用编程软件(Micro/WIN)的菜单命令PLC > Time of Day Clock...,通过与CPU的在线连接设置,完成后时钟开始走动 
编用户程序使用Set_RTC(设置时钟)指令设置 
 Micro/WIN可以通过任何编程连接实现实时时钟的设置。

使用 S7-200 的 READ_RTC(读取实时时钟)和 SET_RTC(设置实时时钟)指令时, 读取和设置的数据格式都是 BCD 码的。如果觉得不便计算、处理,可使用 Clock Integer 指令库。 

Clock_Integer 指令库用于将 BCD 码格式的 S7-200 日期、时间转换为十进制整数格式,以及将十进制整数格式的日期、时间值设定为 S7-200 时钟。

要使用 Clock_Integer 指令库,须遵循下列步骤:

取得 Clock_Integer 指令库文件,并添加到编程软件 STEP 7-Micro/WIN 中; 
按照要求编写用户程序调用 Clock_Integer 指令库。 

请见《《西门子 S7-200·LOGO!·SITOP 参考》V0.92版(更新版)(2008.02.15)   》,其中有关如何读系统时钟及如何添加库指令的说明,下载:  
http://www.ad.siemens.com.cn/download/searchResult.aspx?searchText=A0136
引用:计数器C0控制停机,VB0至VB7存实时时钟值,VB3为小时数,每天1点正,C0加1,当C0=365时停机。M0.0位为复位位
 LD     SM0.0
 TODR   VB0
 A      C0
 STOP

 LDB=   VB3, 1
 EU
 LD     M0.0
 CTU    C0, 365
 注意关机断电保持问题(例子仅供参考,可根据自已实际情况修改使用)

提问者对于答案的评价:
谢谢

专家置评

大家的答案都不错!

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc299708.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2020年10月31日
下一篇 2020年10月31日

相关推荐

  • 在TD200中如何用功能键实现不同画面的选择问题

    我用TD200 V3.0.1.1组态了几个画面,要求(1)用F1+SHIFT组合键调出“系统参数设置画面”,F2+SHIFT组合键调出“工作参数设置画面”,F3+SHIF…

    SIMATIC S7-200 2021年7月5日
  • S7-200自定义库问题

    我做了一个控制电磁阀的自定义库,相当于一个功能块。在程序调用此功能块时,我暂时调用了两个。结果对第一个进行操作时发现两个功能块同时动作。这样相当于我做的功能块智能用一个。请问是什么…

    2017年6月18日
  • S7-200 SMART 控制每一圈回一次原点的问题?

    用s7-200 smart   ST30,控制一个步进电机,步进电机用联轴器直接控制一个转盘。   实际工作时…

    2021年7月5日
  • S7-200,300格雷码转二进制的指令在哪?

    在两个软件里的指令里都没有找到这个指令?遇到二进制转格雷码的情况怎么办呢?自己怎么编写呢? 最佳答案 S7-300沒有现成的转换功能块,具体请参考:《S7-300有没有格雷码转二进…

    SIMATIC S7-200 2020年10月31日
  • s7-200plc用modbus控制施耐德atv310变频器通讯问题

    我自己做的通讯线,网口4脚对应串口3脚,网口5脚对应串口8脚。编好主站程序后,MSG一直报错误代码3   第一次做modbus通讯,不知道怎么回事,请…

    2021年7月5日
  • cpu266cn与触摸屏通讯

    CPU266CN与台达触摸屏DVP-A之间如何连线通讯?请各位高手赐教! 最佳答案 如果是485口,只需要3,8线直连; 如果是232口,需要2,3交叉连接,5号线直连。…

    SIMATIC S7-200 2021年7月5日
  • S7200数字量模块问题

    我想请问一下,比方说一个刹车的,我要求电机正反转的时候都驱动刹车,为什么在正转的时候驱动刹车可以,反转的时候驱动刹车就不行?我在PLC上做了监视,也看到当前的刹车触点有接通,但是在…

    SIMATIC S7-200 2017年11月4日
  • S7-200与台达M系列变频器通讯

    M系列台达变频器驱动命令从2000H开始。我如果读变频器里2000H的内容。我在我的modbus库里MSG里的‘addr’设为48192.把‘dataptr’里定义成&VB100这…

    SIMATIC S7-200 2020年11月1日
  • TD400功能键地址

    TD400组态后的功能键F1-f8的地址在哪里,如何找到 最佳答案 功能键F1-f8的地址在向导中设置,在向导里能找到! 提问者对于答案的评价:q

    SIMATIC S7-200 2021年7月4日
  • 正确的Modbus通信字节序列例子

    我想做一个C#的200PLC的Modbus从站上位机通信,PLC程序是用从站库写的,我照资料上的格式发送字节序列过去,但是PLC没有应答,不知是不是格式不对还是别的原因?请高手教我…

    SIMATIC S7-200 2017年6月13日