发表于:2006/6/8 10:30:00
#0楼
[size=4][size=4]各位大哥小弟现有一问题请教:
问题是这样的:现在小弟做个工程,设备包括三菱PLC FX1N,EVEIW 506触摸屏,还有一个称重传感器。控制过程如下:称重传感器将数据通过232串口送入PLC,然后PLC根据这个实时数据进行监控,上位机为EVEIW 506触摸屏,称重传感器数据帧格式是这样的:数据为ASCII字符,字头是NT(净重)或ST(毛重),如:“NT(ST),+(-)1 49.2Kg CR LF”为一帧数据,其中数据149.2每位算作一个字符,即有5位ASCII字符,现在小弟想把数据从中剥离出来,变成十进制数据放入D100寄存器,以便作为实际重量参数控制用。小弟处理的办法是这样的:假设接收到的字符“1”放在D53寄存器,因为“1”的ASCII值是49,所以用语句:“SUB D53 K48 D61”,然后“MUL D61 K1000 D61”,接着假设接收到的字符“4”放在D54寄存器,所以用语句:“SUB D54 K48 D62”,然后“MUL D62 K100 D62”,依此类推,最后将D61、D62…值相加放入D100寄存器,即为十进制数1492,然后在触摸屏上设置D100显示格式为:小数点以上4位,小数点以下1位。即在触摸屏显示为149.2,但是问题是数据显示很不稳定,奇怪的是就9这位一直在变化,从0到9都有可能,但是其他几位显示很稳定,与传感器表头的读数一样,就是9这一位变个不停。小弟百思不得其解,以为是数据传输不稳定造成的,就将每位以文本的方式直接读出ASCII字符,如在触摸屏上显示“D53 D54 D55谢谢!果非常稳定,读数与表头一样。小弟初次使用三菱PLC,不是很熟悉,例如十进制0.1怎么表示都不知道,写成K0.1又不对。
恳请各位大哥分析以上问题,提些建议和思路,小弟不胜感激![/size][/size]
问题是这样的:现在小弟做个工程,设备包括三菱PLC FX1N,EVEIW 506触摸屏,还有一个称重传感器。控制过程如下:称重传感器将数据通过232串口送入PLC,然后PLC根据这个实时数据进行监控,上位机为EVEIW 506触摸屏,称重传感器数据帧格式是这样的:数据为ASCII字符,字头是NT(净重)或ST(毛重),如:“NT(ST),+(-)1 49.2Kg CR LF”为一帧数据,其中数据149.2每位算作一个字符,即有5位ASCII字符,现在小弟想把数据从中剥离出来,变成十进制数据放入D100寄存器,以便作为实际重量参数控制用。小弟处理的办法是这样的:假设接收到的字符“1”放在D53寄存器,因为“1”的ASCII值是49,所以用语句:“SUB D53 K48 D61”,然后“MUL D61 K1000 D61”,接着假设接收到的字符“4”放在D54寄存器,所以用语句:“SUB D54 K48 D62”,然后“MUL D62 K100 D62”,依此类推,最后将D61、D62…值相加放入D100寄存器,即为十进制数1492,然后在触摸屏上设置D100显示格式为:小数点以上4位,小数点以下1位。即在触摸屏显示为149.2,但是问题是数据显示很不稳定,奇怪的是就9这位一直在变化,从0到9都有可能,但是其他几位显示很稳定,与传感器表头的读数一样,就是9这一位变个不停。小弟百思不得其解,以为是数据传输不稳定造成的,就将每位以文本的方式直接读出ASCII字符,如在触摸屏上显示“D53 D54 D55谢谢!果非常稳定,读数与表头一样。小弟初次使用三菱PLC,不是很熟悉,例如十进制0.1怎么表示都不知道,写成K0.1又不对。
恳请各位大哥分析以上问题,提些建议和思路,小弟不胜感激![/size][/size]