模拟量输入/输出量程转换的概念
实际工程中,我们要面对很多工程量,如压力、温度、流量、物位等,他们要使用各种类型传感器进行测量,传感器再将测量值通过输出标准电压、电流、温度或电阻信号供 PLC 采集,PLC的模拟量输入模板将该电压、电流、温度、或电阻信号等模拟量转换成数字量—整形数 (INT) 。在 PLC 程序内部要对相应的信号进行比较、运算时,常需将该信号转换成实际物理值,这样这个数值才具有实际意义。相反,我们要控制一些执行机构(如比例阀,电动阀等)需要将控制值转换成与实际工程量对应的整形数,再经模拟量输出模板转换成电压、电流信号去控制现场执行机构。要完成输入、输出模拟量转换,就需要在程序中调用功能块完成量程转换。
例如一个压力调节回路中,压力变送器输出 4-20mA DC 信号到 SM331 模拟量输入模板,SM331 模板将该信号转换成 0-27648 的整形数,然后在程序中要调用 FC105 将该值转换成 0-10.0 (MPa )的工程量(实数),经 PID 运算后得到的结果仍为实数,要用 FC106 转换为对应阀门开度 0-100% 的整形数 0-27648 后,经 SM332 模拟量输出模板输出 4-20mA DC 信号到调节阀的执行机构。
西门子PLC模拟量输入输出相关数据类型转换
plc模拟量输入输出都会涉及到数据类型的互转问题,然而西门子300系统对于数据格式有着明确的规定,一般的四则运算都是在同一数据类型下才能进行的,这也是一直以来困扰初学者的一个问题。
西门子300编程软件step7 和 博图都提供了相应的模拟量输入输出处理模块FC105,FC106。但是好多场合下,要对数据进行线性转换或运算,靠这两个函数是远远不够的。这时候就需要用户自己动手写一些数据转换的子程序。所以知道西门子数据类型转换是很有必要的。
1.模拟量数据采集值(PIW INT) 转换为 物理量(浮点数real)
西门子plc通过采集通道采集到的值以整型(INT)型式保存在PIWx(PIW0)内,要换算为浮点型式的物理量需要经过以下两步。
第一步:把INT 转换为 DINT ,不用为为什么,就是精度精度精度。
第二部:把DINT 转换为REAL。
这两步都很简单,如图所示。难点在于,把浮点数(REAL)转换为整形(INT),再通过PQW输出。
2.物理量(浮点数real) 转换为 模拟量数据输出值(PQW INT)
西门子PLC以整型(INT)型式输出模拟量(PQW0),一般的物理量都是浮点数型式,要把物理量换算为模拟量输出,需要经过以下两步。
第一步:通过ROUND函数或TRUNC函数,把REAL数据转换为DI格式。
ROUND是实数转换双字整数指令,小数点后的第一位采取四舍五入。TRUNC也是实数转换为双整数,但是去小数部分取整数。
第二部:把DINT 数据通过MOVE指令输送到VW区,再通过MOVE指令由PQW输出即可。