潍坊西门子6GK工业交换机一级代理商
图1 FB58/59示例项目
该示例项目包含有如下几个示例程序:
(1)连续控制器Continuous controller
输出类型是连续数值的一类控制器,其中的FB100和DB100是一个模拟的控制对象;
(2)脉冲控制Pulse control OB35, OB1
输出类型是单个脉冲信号的一类控制,在OB35和OB1中同时调用,其中的FB102和DB102是一个模拟的接收脉冲信号的控制对象;
(3)脉冲控制Pulse control OB35, OB32
输出类型是单个脉冲信号的一类控制,在OB35和OB32中同时调用,其中的FB102和DB102是一个模拟的接收脉冲信号的控制对象。和上一个项目不同,这个项目要求运行的CPU能够支持OB32定时中断,例如S7-400CPU;
(4)脉冲控制器 Pulse controller
输出类型是单个脉冲信号的一类控制,只在OB35中调用,其中的FB102和DB102是一个模拟的接收脉冲信号的控制对象。和前面两个项目不同,这个项目只在OB35中调用一次FB58即可;
(5)步进控制器 Step controller
输出类型是两个脉冲信号的一类控制,只在OB35中调用,其中的FB101和DB101是一个模拟的控制对象,例如步进电动阀门。这是一个FB59的应用示例。
通过示例项目可以测试FB58的各项功能。在具体的编程过程中,可以从示例项目中将相关功能块、组织块、背景数据块拷贝过来,也可以直接编程调用。
在STEP 7中创建一个OB35,打开并在其中添加FB58:
图2 调用FB58
如上图所示,在左侧的总览列表中,依次进入“Libraries"?“Standard Library"?“PID ControlBlocks",在其中拖拽FB58到右侧编程窗口中。填写一个背景数据块(例如DB58),由于是新建的一个DB块,软件会弹出如下窗口:
图3 生成背景数据块
点击“Yes"即可生成一个用于FB58的背景数据块。
在块(“Blocks")中找到刚生成的DB块,双击打开:
图4 背景数据块
在背景数据块中可以直接修改相关的控制参数,然后点击工具栏上的按钮
来下载参数。如果需要查看更加具体的参数信息,可以切换到数据视图:
图5 切换到数据视图
在数据视图中,可以点击工具栏上的
来进行在线监控。
2.2 过程值的处理
在FB58中,对模拟量的处理遵照如下流程图:
图6 过程值处理流程
如图中所示,FB58提供有两个过程值的输入通道:PV_IN和PV_PER,这两个通道用PVPER_ON来选择:
注:PVPER_ON的默认值为False。
对于PV_PER的输入,根据温度测量方式的不同,从模拟量输入通道过来的数据格式也有所不同,因此,FB58提供过程值格式转换的环节CRP_IN,其中涉及到参数PER_MODE:
注:PER_MODE的默认值为0。
从图1中的处理流程中可以看到经过CRP_IN之后,还有一个规格化(Normalize)的环节PV_NORM。该环节可以对过程值进行修正,对于温度值,可以规格化为百分比值,同样地,百分比的值也可以规格化为温度值。
其转换公式是:
PV_NORM的输出 = CPR_IN的输出*PV_FAC+PV_OFFS
例如,通过温度变送器将一个-200℃~1000℃范围里的温度值以4~20mA的信号送至模拟量输入通道PIW256中。在FB58中设置
通过如上的参数设置,则在“PV"参数中得到一个温度值。同样地,此时的设定值SP_INT可以直接设置为温度值。
设定值SP_INT的取值由过程值的处理过程所决定,如果过程值经过处理得到一个百分比的值,那么SP_INT就是一个量程的百分比;如果处理得到一个实际温度值,那么设定值SP_INT也必须是一个温度值。SP_INT必须要有和过程值一样的基本单位