BCD 码和实时时钟

请问写实时时钟程序的时候要不要增加 BCD到整数字节的转换指令和整数到BCD 码的转换指令
16#97 为什么表示 2002 年啊,请给予详细的解释

问题补充:
BCD 码和 16进制是不一样的,读和写时钟的格式都是BCD 码,
但为什么用 16进制也可以写啊?比如
16#97,表示 1997,输入1997不是应该输入这个1997对应的BCD 码码?为什么输入16进制啊?
请给予详细的解释,本人对计算机知识不是很懂,谢谢

最佳答案

1 16#02表示2002年,16#97表示1997年。16#97表示2002年是帮助或手册上的错误。

2 写实时时钟程序可以这样写:
LD     M0.0
EU
MOVB   16#10, VB0
MOVB   16#10, VB1
MOVB   16#13, VB2
MOVB   16#22, VB3
MOVB   16#15, VB4
MOVB   16#10, VB5
MOVB   16#0, VB6
MOVB   16#04, VB7
TODW   VB0
注意:
用软件设置时钟会更方便,即将PC上时间设置到PLC。将PC和PLC连接,PLC--实时时钟--读取PC--设置
用TODW写时钟时,尽量用沿来写入,不可用SM0.0,即写一次即可,频繁执行写时钟可能不是作者的本意,但很多人会犯这样的错误。

3 时钟需要读取才能使用,虽然有时钟库(Clock_Integer 指令库),但不建议用这个。用BCD码直接比较即可,比较直观,没必要转换来转换去。比如:
LDB>=  VB5, 16#20
OB<=   VB5, 16#06
=      Q0.0

4 Clock_Integer 指令库
到下载中心 http://www.ad.siemens.com.cn/download/

文档编号:A0136
文档类型:应用文档
文档中文标题:《西门子 S7-200·LOGO!·SITOP 参考》V0.93版
日期:2009/1/8
大小:5.68MB

打开后通过目录:

S7-200PLC---编程软件STEP7-Miro/WIN---Miro/WIN指令库---Clock Integer量程换算库
里面有这个库的很多说明,也可以下载这个库。

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

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2020年11月1日 下午4:08
下一篇 2020年11月1日 下午4:09

相关推荐