前几期,我们发表过西门子PLC的模拟量手把手教学文,发现大家很感兴趣,也有不少朋友给我们留言需要我们发表些三菱PLC的,苦于事多,力不从心!今天熬夜,把这空缺补上!(熬夜伤身,记得多给我们鸡腿补补)
先用例子来引导有一个压力变送器,量程为0~20MPa,输出信号为0~10V。PLC借助FX2N-2AD的模拟量输入模块,将压力值传送给上位机显示。
其中的FX2N-2AD模块的量程为0~10V,转换后的数字量为0~4000,(这个0~4000,是FX2N-2AD模块的输出特性,也就是线性比的数据值,跟西门子的0~32000和0~27648是一个道理)。
所需主要软硬件配置
① 1套GX DEVELOPER V8.86;
② 1个FX2N-2AD模块;
③ 1台FX2N-16MT PLC。
第一步——FX2N-2AD 了解
FX2N-2AD模块只有两个通道,也就是说最多只能和两路模拟量信号连接,其转换精度为12位。FX2N-2AD模块并不需要外接电源供电,其电源直接由PLC供给。
第二步——FX2N-2AD 接线
FX2N-2AD模块可以转换电流信号和电压信号,但其接线有所不同,外部电压信号与FX2N-2AD模块的连接如下图所示,传感器与模块的连接最好用双绞线,当模拟量的噪声或者波动较大时,在图中连接一个00.1~4.7μF的电容,VIN1和VIN2与电压信号的正信号相连,COM1和COM2与信号的低电平相连。FX2N-2AD模块的供电直接由PLC通过扩展电缆提供,并不需要外接电源。
外部电流信号与FX2N-2AD模块的连接如下图所示,传感器与模块的连接最好用双绞线,IIN1和IIN2与电流信号的正信号相连,COM1和COM2与信号的低电平相连。VIN1和IIN1短接,VIN2和IIN2短接。
此模块的不同的通道只能同时连接电压或者电流信号,如通道1输入电压,那么通道2的输入只能是电压信号。
【关键点】
① FX2N-2AD不能将一个通道作为模拟电压的输入,而另一个作为电流输入,这是因为两个通道使用相同的偏值量和增量值。
② 模块的转换位数为12位,对应的数字为2的12次方减1=4095,但实际应用时,为了计算方便,通常情况下都将最大模拟量输入(DC 10V或20mA)所对应的数字量设定为4000,A/D转换的输出特性见下表1。
④ 输入信号只能是单极性的。
表1 A/D转换的输出特性
第三步——FX2N-2AD 模块的编程
相对于其他的PLC(如西门子S7-200),FX2N-2AD模块的使用不是很方便,要使用FROM/TO指令。使用TO指令启动A/D转换,用FROM指令将A/D转换结果读入PLC。
转换结果数据在模块缓冲存储器(BFM)中的存储地址如下。
BFM#0的bit0~bit7:转换结果数据的低8位。
BFM#1的bit0~bit3:转换结果数据的高4位。
A/D转换控制信号在模块缓冲存储器(BFM)中的存储地址如下:
BFM#17的bit0:通道选择,为0时,选择通道1;为1时,选择通道2。
BFM#17的bit1:A/D转换的启动信号,上升沿启动A/D转换。
说了以上三步,回到文章开篇的例子(我知道你肯定已经忘记什么内容,赶紧往上翻~~),如何对例子进行编程呢?
直接看程序:
借助:第三步——FX2N-2AD 模块的编程的内容。我们对上面程序进行讲解:
1:BFM#17的bit0 写入0值,代表我们选择FX2N-2AD 模块的第一个通道来采取压力变送器的信号。
2:BFM#17的bit1 写入1值,代表我们要启动通道1的A/D转换功能。
3:PLC获取FX2N-2AD 模块的数据,写到M100~M131。
4:数据优化,将数据传送至D0,为了后期处理准备。
别以为就这样完事了,D0的数值只是转换后的数字,并非真实压力值!我们还要进行线性化计算:
压力表量程:0~20MPa(0~20000kPa)对应于转换后的数字:0~4000,转换公式为:
P=(20000*D0)/4000=5*D0
因此还需要加上第五步:
D2的数值就是检测到的压力值啦~