孙博文,刘昌盛
(沈阳机床成套设备有限责任公司 辽宁 沈阳 110142)
SCALE(FC105)功能将一个整数型INTEGER(IN)转换成上、下限(HI_LIM、LO_LIM)之间的实际工程值结果写到OUT中。
公式如下:
OUT=[(IN-K1)/(K2-K1)*(HI_LIM-LO_LIM)]+LO_LIM
其中K1、K2取决于IN是双极性还是单极性。
如果输入值大于上限或输入值小于下限,输出限位到与其相近的上限值或者下限值,并返回错误代码。
UNSCALE(FC105)功能将一个整数REAL(IN)转换成上、下限(HI_LIM、LO_LIM)之间的实际工程值,数据类型为整数型,结果写到OUT中。
公式如下:
OUT=[(IN-LO_LIM)/(HI_LIM-LO_LIM)*(K2-K1)]+K1
其中K1、K2取决于IN是双极性还是单极性。如果输入值大于上限或输入值小于下限,输出限位到与其相近的上限值或者下限值,并返回错误代码。
该模块是一个不带外壳的外设模块,用于连接PROFINET IOD的自动化系统框架中的数字量的输入、输出端。I/O模块外观及端口见图1。
该模块具备以下特性:
(1)72个数字量输入端,48个数字量输出端
(2)两个模拟量输入端,两个模拟量输出端
(3)PROFINET IO接口
(4)板载状态显示,6个LED显示灯构成
(5)数字量输入、输出端的3个插接头为50针的柱状连接器,可连接50芯扁平电缆
(6)允许使用转接头或直接连接分配板
(7)模拟量信号电缆允许直接连接到模块的段子上
(8)模块和数字量输出端的电源由一个外部电源提供。
图1 I/O模块外观及端口
一般情况下,利用功能FC105/FC106实现工程量与模拟量之间转化时,都需要外加模拟量输入模板SM331及模拟量输出模板SM332。但是此方案生产成本较高,我此次采用带有模拟量输入、输出端口的I/O模块代替SM332,实现模拟量与工程值的转换。
首先在STEP7中,编程界面下,为所需压力分为两档。
程序如下:
其中"压力值".DB_VAR[0]、"压力值".DB_VAR[3]为操作人员输入系统的四个档位,分别为10、20。经过计算得出"压力值".DB_VAR[2]、"压力值".DB_VAR[5]分别为1、3。此处需要注意的是,我公司采用的受控阀门(比例减压阀)可接受的最大电压为10V,I/O模块输出的最大电压也为10V,如果在最大档位时输出10V电压,就可能造成比例减压阀电压溢出,造成机床报警并且急停。
两个档位对应两个M码,分别为M80、M81,通过在加工程序中编程来更换档位,并将该档位对应的实数值送到MD410中,作为FC106的输入值进行计算。
程序如下:
在Program elements中的Libraries下的Standard Library下的TI-S7 Converting blocks中找到功能FC105/FC106,并调用该功能。此方案中我们选择单极性上下限(BIPOLAR∶=FALSE),设定上限为10.0,下限为0.0,输出的整数值送进MW710。
程序如下:
这里需要注意的是西门子828D与840Dsl在读取数据时的区别,840Dsl先读取高位字节,为配合此次选用的I/O模块,所以将MB712送入QB263,将MB713送入QB262。
处理完梯形图后,我们下一步需要处理I/O模块。
首先通过梯形图为I/O模块模拟量输出端口(X3)相应的参数进行修改。该I/O模块的模拟量输入输出端口有四个通道,每个通道都四种运行方式。
程序如下:
此时会有与QW262中数值相对应的模拟电压从I/O模块的模拟量输出接口输出,通过导线连接到比例减压阀的电子放大器中。
这样,我们就完成了使用FC106配合带模拟量输入输出接口的I/O模块控制比例减压阀开度的所有准备工作,已可以通过在机床操作面板上更改数值来增加或减少比例减压阀的开度,进而控制压力的大小。
[1] SINUMERIK840Dsl/828D基本功能.
[2] S7-300和S7-400语句表编程参考手册.