有两种方式在 CPU 的用户程序中读取 MRP 环网状态。
有两种方式在 CPU 的用户程序中读取 MRP 环网状态。
1. 使用系统功能块 SFB52“RDREC” 从冗余管理者中读取数据记录 8050(MrpInstanceDataReal)。
2. 使用诊断 OB OB82
用系统功能块 SFB52“RDREC” 读出数据记录 8050
在 CPU 的用户程序中调用系统函数块 SFB52“RDREC” 读取冗余管理者的 MRP 环网数据记录 8050 并确定 MRP 环网的状态。
一个用 SCALANCE X208 作为冗余管理者的例子。
图1 显示了系统的调用功能块 SFB52“RDREC”。
确定 SCALANCE X208(冗余管理者)的 诊断地址,在硬件配置标记 SCALANCEX208。SCALANCEX208 的诊断地址在槽 0 的 “诊断地址” 列中。在本例中,SFB52“RDREC” 的输入参数 ID 指定为诊断地址 2042(十进制)=0x7FA(十六进制)。
读取数据记录存储在一个数据块的一个ARRAY[0..199] 数据类型的变量中。读取数据记录的68字节(MRP_RingState)显示了 MRP 环网的当前状态。
字节68 = 1:环网关闭,换句话说,冗余管理者是未激活的,只有一个环网端口将转发环网消息。
字节68 = 0:环网打开,换句话说,冗余管理者是激活的,两个环网端口转发环网消息。
诊断 OB OB82
如果冗余管理者是 PROFINETIO 网络的一个节点,也可以在 CPU 的用户程序中使用诊断 OBOB82 读取MRP环网的状态。对于这个需要使能冗余管理者的诊断报警。
在 SCALANCE X208(冗余管理者)中使能诊断报警需要进入硬件配置和打开 SCALANCE X208PROFINET 接口的属性。在 “介质冗余” 选项卡中启用 “诊断报警” 功能。
图3
CPU 启用函数 “OB 82 / IO FaultTask- 通讯中断时调用”。对于这个需要进入硬件配置和打开的 CPUPROFINET 的属性界面。在 “PROFINET” 选项卡启用函数 “OB 82 / IOFaultTask - 通讯中断时调用”。
现在 OB82 当环网打开(进入的事件)和当环网关闭(离开的事件)时被调用。
在 STEP 7 V5.xOB82 中使用 “OB82_MDL_ADDR” 参数可以读取设备报告错误的基本逻辑地址。“OB82_EV_CLASS” 参数报告是否是一个离开事件(B# 16 # 38)或者进入事件(B # 16 # 39)。
读取数据记录目标区域的结构
表1 显示了读取数据记录目标区域的结构指定的记录 “RDREC” 指令的输入参数。
图2 PID闭环控制的主程序
PID0_CTRL的输入变量“过程变量”是子程序“被控对象”(见图3)的输出值,PID0_CTRL的输出变量“PID输出”是子程序“被控对象”的输入值,这样就组成了图1中的PID闭环。
PID_EXE占用了定时中断0,模拟被控对象的中断程序使用定时中断1。两个定时中断的时间间隔均为200ms。刚进入RUN模式时,SM0.1的常开触点闭合,将定时中断1的时间间隔200ms送给SMB35,用ATCH指令连接中断程序INT_0和编号为11的定时中断1的中断事件。
在中断程序INT_0中,用一直闭合的SM0.0的常开触点调用子程序“被控对象”(见图3),被控对象的增益为3.0,3个惯性环节的时间常数分别为5s、2s和0s,实际上只用了两个惯性环节。其采样周期CYCLE为200ms,参数COM_RST用于初始化操作。
图3 中断程序INT_0
实际的PID控制程序不需要调用中断程序INT_0和其中的子程序“被控对象”,在主程序中只需要调用子程序PID0_CTRL,其输入参数PV_I应为实际使用的AI模块的通道地址(例如AIW16),输出参数Output应为实际使用的AO模块的通道地址(例如AQW16)。
STEP 7-Micro/WINSMART的PID整定控制面板(见图4)用图形方式监视PID回路的运行情况,可以用它手动调节PID参数,或用于PID参数自整定。
将例程“PID闭环控制”下载到CPU,令PLC为RUN模式。双击项目树的“工具”文件夹中的“PID整定控制面板”,打开控制面板。令初始化程序PID0_CTRL的输入参数Auto_Manual(I0.0)为“ON”,启动PID控制。选中面板左边窗口中的“Loop0”,可以看到右边窗口用不同颜色显示的PV、SP和PID输出的动态变化的曲线及它们的值,图中的PID控制器的参数Kc为增益,TI为积分时间,TD为微分时间。