| 作者 | 主题 |
|---|---|
|
prozm 新手 经验值:42 发帖数:36 精华帖:0 |
楼主
主题:如何将200的日期读取后编程ACSII码?
我有一个程序,需要将PLC的当前年月日时间打印出来,但打印需要ACSII码,我先用READ_RTC读取实时时钟并放入VB0至VB7中,然后使用ITA指令将时钟变量转换成ACSII码,但ITA是word型的,在VB0至VB7中的年月日时间是BYTE型的,这样无法转换,我把VB0放到VB10中,再使用ITA转换VW10,但出来的数据是错误的,有没有简单一点的方法啊,望能指教,谢谢
|
|
醉书生 侠士 经验值:1348 发帖数:718 精华帖:25 |
楼
主题:回复:如何将200的日期读取后编程ACSII码?
要注意时钟是BCD格式的,用ITA指令会很繁琐,因为先要 BTI,再 BCDI,才能ITA,起码要一二十条语句才能完成。完成后还得从输出缓冲里将有效字符拿出来拼成串打印
但是用 HTA 指令会很方便,只需 2 条指令就完成了 todr vb0 hta vb0, vb10, 16 比如PLC时间是 2006/3/15 10:43:36 星期三,经过上面两条指令,VB10 开始的16个字节中保存的是: ‘0603151043360004’ 最后的0004中前面两个零是没有意义的(S7-200时钟对第7字节没有定义),也有可能是其它随机数,可以在转换之前先将这个字节去掉 todr vb0 movb vb7, vb6 hta vb0, vb10, 14 movb 14, vb9 则得到的结果是: ‘06031510433604’ 第4条语句的作用是可以用字符串指令 通过 VB9 访问得到的结果
生命存在的方式只有两种:腐烂或燃烧
|