请问写实时时钟程序的时候要不要增加 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