技术论坛

 回复:如何将200的日期读取后编程ACSII码?

返回主题列表
作者 主题
prozm
新手

经验值:42
发帖数:36
精华帖:0
楼主    2006-03-14 23:13:58
主题:如何将200的日期读取后编程ACSII码?
我有一个程序,需要将PLC的当前年月日时间打印出来,但打印需要ACSII码,我先用READ_RTC读取实时时钟并放入VB0至VB7中,然后使用ITA指令将时钟变量转换成ACSII码,但ITA是word型的,在VB0至VB7中的年月日时间是BYTE型的,这样无法转换,我把VB0放到VB10中,再使用ITA转换VW10,但出来的数据是错误的,有没有简单一点的方法啊,望能指教,谢谢
醉书生
侠士

经验值:1348
发帖数:718
精华帖:25
    2006-03-15 10:47:20
精华帖  主题:回复:如何将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 访问得到的结果
生命存在的方式只有两种:腐烂或燃烧
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。