关于PLC中BCD码的几点说明(2014年12月8日总结)1、如下图所示,程序运行正常,转换结果显示也正确。请问有什么问题吗?2、MW113对应在触摸屏显示如下(当前是12月,抓住旧年的尾巴好好规划新年吧):此时也能正常显示。3、程序里面没有发现错误,但是PLC上的SF灯却被点红亮了,而且在STEP7PLC诊断里面会发现如下问题:(1)状态错误(General下拉表里面可以看见下图)(2)在诊断缓存器(DiagnosticBuffer)里面可以看到故障信息如下:具体故障信息为:BCD转换错误(BCDconversionerror).4、为什么会产生“BCD转换错误”呢?首先我们来看BCD转换的条件:(1)BCD_I(BCD码转换为整型)将参数IN的内容以三位BCD码数字(+/-999)读取,并将其转换为整型值(16位)。整型值的结果通过参数OUT输出。ENO始终与EN的信号状态相同。如下图所示:(2)I_BCD(整型转换为BCD码)将参数IN的内容以整型值(16位)读取,并将其转换为三位BCD码数字(+/-999)。结果由参数OUT输出。如果产生溢出,ENO的状态为"0"。如下图所示:由以上两个转换方式可知,BCD码可以表示的范围只有-999~999。如果超出这个范围将会产生错误。但是本例中的数只有12,不会超出范围。即使将12换成1~9也同样会产生这样的错误。所以此处报出的“BCD转换错误”并不是超出了BCD码可用的转换范围,而是有其他错误。(3)我们分析上述出问题的程序时发现,原来输入的值MW111中存放的是按二进制方式存放的12,“BCD_I”这个指令时,其输入端并不是BCD格式的数,所才产生了错误。5、为什么说BCD码只能表示-999~999呢?由于“BCD_I”这个指令要求可转换的BCD码范围为三位BCD码,那此时就如下:“-1**********”~“+1**********”
关于PLC中BCD码的几点说明 来自淘豆网m.daumloan.com转载请标明出处.