1.协议宏调用指令PMCR
在协议宏下载到CJ1W-SCU41后,需要利用CX-Programmer软件使用协议宏调用指令PMCR编写梯形图程序来调用存储在串行通信单元(或通信板)中的协议宏序列。其梯形图符号如下:
操作数取值区域:
C1:CIO,W,H,A,T,C,D,*D,@D或指定立即数值
C2:CIO,W,H,A,T,C,D,*D,@D或常数(0000~03E7H)
S:CIO,W,H,A,T,C,D,*D,@D或#0000
R:CIO,W,H,A448~A959,T,C,D,*D,@D或#0000
控制通道C1旨在定义PMCR控制的PMSU模块和端口。C1设定数据如下:
控制通道C2旨在定义触发执行协议宏的起始序列号,取值范围为0000~03E7H(对应十进制数000~999)。
发送首字S指定发送数据存储的起始地址。
接收首字R指定接收数据存储的起始地址。
PMCR指令执行时,协议宏执行标志为ON,不同单元号的串行通信单元对应不同执行标志,计算方法见表10-10。
表10-10 协议宏执行标志计算表
2.串行通信协议宏调用程序设计
本控制系统的串行通信单元CJ1W-SCU41连接了4台变频器,对应的协议宏调用程序涉及4台设备的循环调用。现以1#变频器为例介绍协议宏循环调用程序设计方法,参考程序段如图10-46所示。
在图10-46中,调用1#变频器频率设定协议宏的PMCR指令的操作数设定如下:(www.daowen.com)
1)控制字C1:逻辑端口选“1”(1~7可以任选),故C1最高位设“1”;4台变频器均并联接入CJ1W-SCU41的串口1,故C1的2位设“1”;本例使用CJ1W-SCU41的单元号为“2”,故C1的低两位设为“12”(10+“单元号2”的结果)。结果是C1字的值为“#1112”。
图10-46 1#变频器协议宏循环调用程序示例
2)控制字C2:参照图10-41,由于读取1#变频器频率值的协议序列号为000,因此C2字的值设为“#0000”。
3)发送首字S:由于1#变频器频率设定序列发送帧数据为变量(R(1),4),则需从PMCR指令指定的发送首字的下一个字中读取频率设定值,因此S字的值设为“D0”,则频率值需从D1与D2通道中顺序读取,共读取两个通道值。
4)接收首字R:由于1#变频器频率设定序列接收帧数据为变量(W(1),4),则采集的应答值将在PMCR指令所指定的接收首字的下一个字开始顺序存储,因此R字的值设为“D100”,则变频器反馈的频率值(ASCII码)是从D101通道(即D100的下一个通道)开始顺序存储的,共需占用两个通道。
调用1#变频器频率起动/停止与双向运行协议宏及监测电流值协议宏的PMCR指令操作数设定与此类似,不再赘述。但是,每个PMCR指令的逻辑端口不能取相同值(即使是取相同值,也必须保证取相同逻辑端口值的PMCR指令不同时执行)。特别要注意在使用PMCR指令时不要写错序列号。
在图10-46中,起动位0.00触发工作位W10.00置位并保持,使第一个PMCR指令输入条件满足开始调用一次1#变频器频率设字序列,同时复位W10.00,置位W10.01,为执行第二个PMCR指令做准备。
当第一个PMCR指令正在运行时,CJ1W-SCU41单元面板上的SD1和RD1灯亮,表明串口1正在收发1#变频器频率设定值,此时串口1的协议宏执行标志1559.15将置“1”,切断所有PMCR指令的输入条件,当第一个PMCR指令执行完一次协议宏调用后,此标志位立即复位为“0”,这就保证了在同一时间内仅调用一个协议序列。而此时第二个PMCR指令输入条件满足开始调用一次1#变频器起动/停止序列,同时复位W10.01,置位W10.02,为执行第三个PMCR指令做准备。
当第二个PMCR指令执行时,串口1的协议宏执行标志1559.15将再置“1”,切断所有PMCR指令的输入条件,当第二个PMCR指令执行完一次协议宏调用后,此标志位再次复位为“0”,使第三个PMCR指令输入条件满足开始调用一次1#变频器监测电流序列,同时复位W10.02,置位W10.00,为再执行第一个PMCR指令做准备。如此周而复始实现了循环调用1#变频器的所有协议序列。
本例采用这种“SET-RSET指令组合”来构建一个循环体,程序框架如图10-47所示。图中,当某段程序的输入条件满足执行该段程序后,复位其输入条件,并置位下一程序段的输入条件,从而将运行权逐段下移,最终在执行完最后一段程序后,再次激活首个程序段的输入条件,实现下一轮循环。“SET+RSET”循环体可以作为经典程序来引用,比较适用于高级指令的循环调用。
借鉴“SET+RSET”循环体,读者可以在图10-46程序段的基础上进一步补充2#~4#变频器协议宏调用程序段,体会协议宏的优势与便捷。使用协议宏串行通信特别要注意以下两点:
1)根据不同设备的RS-485串行通信帧格式,利用CX-Protocol软件编写协议宏,下载时必须保证PLC与RS-485串口设备的通信参数一致。
2)调用PMCR指令时必须保证存取数据的通道设置正确,如果交换的数据是ASCII码,则必要时需利用数制换算指令将ASCII码转换为十六进制数。
本例使用一台PLC通过RS-485串行通信的协议宏模式对4台变频器实施分时循环通信,实现了对变频器的实时起/停与双向运行控制,频率值设定以及监测电流值等功能。本例介绍的使用串行通信协议宏实现单台PLC控制多台变频器的典型案例,不仅大大简化了现场布线,节省了施工费用,而且可靠性也大幅提高。由于具备了实时在线监控各变频器的运行状态的功能,变频器的运行数据可以方便地上传,有利于维护人员的日常维护和故障的自动检测及处理。
图10-47 SET/RSET指令构建循环体示例
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。