我这里有两段关于S7-200时钟指令的程序,谁帮我解读一下,越详细越好,感激不尽,我新手自学。
第一个、
LD Clock_1s:SM0.5
EU
TODR VB200
SCPY "2000.00.00 ", VB300
HTA VB202, VB309, 2
HTA VB201, VB306, 2
HTA VB200, VB303, 2
关于这个,我的疑问是手册说日期和时间值必须采用BCD格式编码,那读出来到VB200是什么格式?为什么用HTA十六进制转换ACSII???
第二个、
LD M0.0
TODR MB20
NETWORK11
LD M0.0
MOVB MB25,VB35
MOVB 16#0,VB34
BCDI VW34
NETWORK12
LD M0.0
MOVB MB24,VB33
MOVB 16#0,VB32
BCDI VW32
NETWORK13
LD M0.0
MOVB MB23,VB31
MOVB 16#0,VB30
BCDI VW30
这个程序里MOVB 16#0什么意思??
问题补充:
追问一下一楼的touch++
软件没有BCD转ACSII,那么可以BCD---I,然后I-----ACSII吗?这样做效果一样吗?
最佳答案
1、关键是如何读系统时钟:
、CPU221、CPU222没有内置的实时时钟,需要外插“时钟/电池卡”才能获得此功能。CPU224、CPU226和CPU226 XM都有内置的实时时钟。
、 为了提高运算效率,应当避免每个程序周期都读取实时时钟。实际上可读取的最小时间单位是1秒,可每秒读取一次(使用SM0.5上升沿触发读取指令)。
、用编程软件(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
提问者对于答案的评价:
OK
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc301707.html