EM231模块在输入4~20mA电流时,可通过线性比例公式将AIWx的原始值(6400~32000)转换为实际工程值,具体转换方法如下:
一、转换公式
使用以下线性比例公式将AIWx的原始值转换为实际工程值(如温度、压力等):
实际值=32000−6400(AIWx−6400)×(工程上限−工程下限)+工程下限
参数说明:
AIWx:PLC读取的原始值(范围6400~32000,对应4~20mA)。
工程下限:实际工程量的最小值(如温度0℃、压力0MPa)。
工程上限:实际工程量的最大值(如温度100℃、压力10MPa)。
二、转换步骤
确定工程量程
根据传感器量程设置工程下限和上限。例如:温度传感器量程为0~100℃,则工程下限为0,工程上限为100。
压力传感器量程为0~10MPa,则工程下限为0,工程上限为10。
读取原始值
通过PLC指令(如MOVW AIW0 VW0)将AIWx的原始值(如AIW0)存入寄存器(如VW0)。代入公式计算
将原始值、工程下限和上限代入公式,计算实际工程量。例如:温度转换示例:
若AIW0的值为12800,温度量程为0~100℃,则:
温度=32000−6400(12800−6400)×(100−0)=256006400×100=25℃
压力转换示例:
若AIW0的值为20480,压力量程为0~10MPa,则:
压力=32000−6400(20480−6400)×(10−0)=2560014080×10=5.5MPa
三、编程实现
在PLC程序中,可通过以下步骤实现转换:
读取原始值
ladLD SM0.0 // 常ON触点MOVW AIW0 VW0 // 将AIW0的值存入VW0
计算实际值
使用数学运算指令(如MUL、DIV、ADD、SUB)实现公式计算。例如:ladLD SM0.0// 计算分子:(VW0 - 6400) * (工程上限 - 工程下限) LDW VW0 SUBW 6400 // VW0 - 6400 MOVD WD0 VD4 // 结果存入VD4 LDW #工程上限 // 替换为实际值(如100) SUBW #工程下限 // 替换为实际值(如0) MOVD WD0 VD8 // 结果存入VD8 MULD VD4 VD8 VD12 // VD4 * VD8 → VD12 // 计算分母:32000 - 6400 LDW #32000 SUBW #6400 MOVD WD0 VD16 // 结果存入VD16 // 计算实际值:(VD12 / VD16) + 工程下限 DDIV VD12 VD16 VD20 // VD12 / VD16 → VD20 LDW #工程下限 // 替换为实际值(如0) MOVD WD0 VD24 DADD VD20 VD24 VD28 // VD20 + VD24 → VD28 MOVW VD28 VW10 // 结果存入VW10(实际工程量)
简化版(若工程量程为0~X):
若工程下限为0,公式可简化为:
实际值=25600(AIWx−6400)×工程上限
对应程序:
ladLD SM0.0LDW VW0 SUBW 6400 MOVD WD0 VD4 LDW #工程上限 // 替换为实际值(如100) MULD VD4 WD0 VD8 // VD4 * WD0 → VD8 LDW #25600 DDIV VD8 WD0 VD12 // VD8 / 25600 → VD12 MOVW VD12 VW10 // 结果存入VW10
四、注意事项
模块配置
确保EM231模块的DIP开关设置为电流输入模式(0~20mA)。
若传感器输出为4~20mA,需将模块量程配置为0~20mA(4mA对应0%,20mA对应100%)。
数据类型
AIWx的原始值为16位整数(0~32000),计算时需转换为实数(如西门子S7-200的
VD寄存器)。精度优化
若需更高精度,可使用浮点运算指令(如
REAL_TO_DWORD、DWORD_TO_REAL)。调试验证
通过HMI或监控表观察转换结果,确保与实际工程量一致。





