三菱FX3U型PLC采用FX3U-485-ADP-MB与ABB变频器进行modbus-rtu通讯及FX3U-4AD模块的数据读取
三菱FX3U型PLC采用FX3U-485-ADP-MB与ABB变频器进行modbus-rtu通讯
三菱FX3U型PLC对FX3U-4AD模块的数据读取
如上图所示,本次项目,需要需要读写ABB变频器的数据,同时读取来自各种传感器的模拟量数据。
那么,在程序编写过程中,我们可以将程序拆分为以下5大部分。
通讯设置,模块参数设置。
变频器的数据读写,传感器的数据读取。
自动控制流程。
手动调试流程。
对于异常情况的故障判断报警。
这篇文章我们主要讲1和2。
FX3U型PLC使用FX3U-485-ADP-MB模块与ABB牌ACS510变频器通讯。
FX3U型PLC使用FX3U-4AD模块将读取到的0-20MA信号换为数字信号。
FX3U-485-ADP-MB模块的参数设定
本次程序中,我们规定PLC与变频器的通讯协议为modbus-rtu,通讯参数为19200,N,8,1。
那么,首先,我们对PLC做以下参数设置(注意:本项目485-ADP-MB模块插在PLC左侧第一端口,如果插其他位置参数会有所更改不同)。
注意:M811需要放在程序最前面,进行通讯设置!
ABB牌ACS510变频器的通讯
ABB的变频器与其他品牌变频器相比,有三点需要注意:
通讯协议或通讯参数更改后,需要复位站号或重新上电!
在对ABB变频器的频率进行更改前,需要对变频器进行初始化,否则不会生效!
0-20000对应变频器的0-100%转速。
红框部分为先初始化变频器,再对变频器频率进行读写,否则频率更改不会生效!
FX3U-4AD模块的参数设置
本次项目使用到3个FX3U-4AD模块,信号为0-20MA,插在PLC的右边,那么我们对模块进行以下设置。
H8888
上图的H8888中,4个数字分别对应4个通道,8为通道的模式的选取。
8表示:-20MA至+20MA对应-20000至20000。
H8888表示4个通道都采用的是模式8。
如果为0-10V电压或者其他模拟量信号时,需要参考说明书对此参数进行修改。
U0/G0
上图的U0/G0,及U1/G2,表示 模块号/参数号。
即 模块0/参数0,模块1/参数2。
U0表示第一个模拟量模块,U1表示第二个模拟量模块,U2表示第三个模拟量模块。
G0,G2为对应的参数组,详细设定请参考说明书。
平均次数
平均次数1-4095,表示采样的平均次数,数字越小,数据越精准,但是波动越大,本参数按现场实际情况自行设置。
FROM K0 K10 D0 K4
FROM K0 K10 D0 K4表示 读取 模块1中从K10通道起的4个通道,存入PLC的D0-D3的4个寄存器中。
模块的K10对应D0,K11对应D1,K12对应D2,K13对应D3。
对FX3U-4AD模块数据的转换处理
前文我们讲到,模块1中通道1的数据此时被存入了PLC的寄存器D0中,我们需要将D0的数据转换为实际温度给人机界面显示。
本次项目中,客户购买的温度变送器为4-20MA对应温度传感器-50至100度。
那么,在D0中:4000-20000对应-50至100度。
以上程序中,当外部输入10mA电流时,D0采集到的数据为10000,需要扣除4MA,然后再经过量程比例转换,最终得到的值为62,此时的温度为6.2度。
当我们实际读取值,D1024大于通道的上量程,或小于通道的下量程时,也就是D0大于K20000,或D0小于K4000时。
此时模块读取到的电流是大于20mA或者小于4mA的,数据不不正常,经过2秒延时后,对PLC的M427置位,然后记录为错误数据,再进行处理。
由于在实际应用中,D0数据可能为3980,3990这种情况也是正常的,所以此时我用的是经过D304修正后的D20显示值数据。
注意在FX系列PLC中:
16位乘法结果值为32位,32位数占用2个寄存器!
32位乘法结果值为64位,64位数占用4个寄存器!
16位除法结果值为32位,结果与余数一起占用4个寄存器!
32位除法结果值为32位,结果与余数一起占用4个寄存器!
例如D0*D2=D4的时候,如果D0与D2均为32位数,那么结果值已经占用了D4,D5,D6,D7共计4个寄存器,此时禁止对D4,D5,D6,D7寄存器进行其他操作,否则会出现错误!
同样,在除法运算中,也要注意到这一点!
|