西门子300PLC,如何把ASCII转化成浮点数?现在使用CP340读取一个泄漏仪表的数据,数据接收区为DB12,比如仪表的结果为0.03,那么DB12.DBB0=NONE,DB12.DBB1=NONE,DB12.DBB2=NONE,DB12.DBB3=NONE,DB12.DBB4= 0 ,DB12.DBB5= .,DB12.
来源:学生作业帮助网 编辑:作业帮 时间:2024/08/01 15:01:27
![西门子300PLC,如何把ASCII转化成浮点数?现在使用CP340读取一个泄漏仪表的数据,数据接收区为DB12,比如仪表的结果为0.03,那么DB12.DBB0=NONE,DB12.DBB1=NONE,DB12.DBB2=NONE,DB12.DBB3=NONE,DB12.DBB4= 0 ,DB12.DBB5= .,DB12.](/uploads/image/z/12324107-11-7.jpg?t=%E8%A5%BF%E9%97%A8%E5%AD%90300PLC%2C%E5%A6%82%E4%BD%95%E6%8A%8AASCII%E8%BD%AC%E5%8C%96%E6%88%90%E6%B5%AE%E7%82%B9%E6%95%B0%3F%E7%8E%B0%E5%9C%A8%E4%BD%BF%E7%94%A8CP340%E8%AF%BB%E5%8F%96%E4%B8%80%E4%B8%AA%E6%B3%84%E6%BC%8F%E4%BB%AA%E8%A1%A8%E7%9A%84%E6%95%B0%E6%8D%AE%2C%E6%95%B0%E6%8D%AE%E6%8E%A5%E6%94%B6%E5%8C%BA%E4%B8%BADB12%2C%E6%AF%94%E5%A6%82%E4%BB%AA%E8%A1%A8%E7%9A%84%E7%BB%93%E6%9E%9C%E4%B8%BA0.03%2C%E9%82%A3%E4%B9%88DB12.DBB0%3DNONE%2CDB12.DBB1%3DNONE%2CDB12.DBB2%3DNONE%2CDB12.DBB3%3DNONE%2CDB12.DBB4%3D+0+%2CDB12.DBB5%3D+.%2CDB12.)
西门子300PLC,如何把ASCII转化成浮点数?现在使用CP340读取一个泄漏仪表的数据,数据接收区为DB12,比如仪表的结果为0.03,那么DB12.DBB0=NONE,DB12.DBB1=NONE,DB12.DBB2=NONE,DB12.DBB3=NONE,DB12.DBB4= 0 ,DB12.DBB5= .,DB12.
西门子300PLC,如何把ASCII转化成浮点数?
现在使用CP340读取一个泄漏仪表的数据,数据接收区为DB12,比如仪表的结果为0.03,那么DB12.DBB0=NONE,DB12.DBB1=NONE,DB12.DBB2=NONE,DB12.DBB3=NONE,DB12.DBB4= 0 ,DB12.DBB5= .,DB12.DBB6= 0 ,DB12.DBB7= 3 ,请问如何转化为小数0.03,如果结果为负的,DB12.DBB3= - .
西门子300PLC,如何把ASCII转化成浮点数?现在使用CP340读取一个泄漏仪表的数据,数据接收区为DB12,比如仪表的结果为0.03,那么DB12.DBB0=NONE,DB12.DBB1=NONE,DB12.DBB2=NONE,DB12.DBB3=NONE,DB12.DBB4= 0 ,DB12.DBB5= .,DB12.
先按照byte,把每个字符转换为10进制数,比如字符‘3’(plc中实际存储的是3的ascii码值)就转换为10进制的3,然后按照位数乘以倍率再加起来,形如10*a+b+0.1*C+0.01*D,最后再判断是否为负值就乘以-1
至于如何把ascii码转换为10进制数据,其实你这种情况都不需要专用指令了,因为就是0-9的ascii码,对应ascii码的范围就是48-57而已,你只要把DB12.DBB7这种地址直接减48就得到10进制数了(当然,step7里面没有byte数据的算术指令,还得先转换为int类型)