本例使用的欧姆龙协议宏编辑软件CX-Protocol是根据带有RS-232C或RS-422A/485串行通信接口的第三方设备的通信命令格式,编写串行通信协议的软件,它可以设定收、发顺序并被下载、存储到串行通信单元SCU或串行通信板SCB(二者统称为PMSU,即Protocol Macro Support Unit)中,实现PLC与第三方设备间的数据交换。本例利用CX-Protocol软件创建一个协议项目(Project),而一个协议项目中可以创建最多20个不同设备的协议(Procotol)。每个协议下又可以创建最多60个序列(Sequence),而序列可以是不同操作的组合。每个序列最多可以由16步(Step)组成,每一步由发送帧,接收帧或收发帧组成。下面以设定1#风机运行频率值为例,说明创建协议宏的步骤与方法。
1)承接10.2.2节的串行通信单元设置内容,进入图10-22所示的CX-Protocol软件的开发界面,图中PLC的机型与CPU型号已经配置完毕。当然,也可以直接打开CX-Protocol软件,选择菜单中的新建协议项目,弹出“变更PLC”对话框,如图10-23所示,配置PLC机型及CPU型号后,单击“确定”按钮,也可得到图10-22所示界面。
图10-23 配置PLC机型及CPU型号
2)创建一个新协议Protocol。用鼠标右键单击“New Protocol List”创建一个新协议,如图10-24a所示。在弹出窗口中选择协议宏类型为“CS/CJ”,如图10-24b所示。对于C200Hα或CQM1H系列PLC,则只能选择“α”协议宏类型。
图10-24 创建新协议(Procotol)
a)创建新Procotol b)选择协议宏类型
3)由于本例的PLC控制系统中选取了CJ1W-SCU41型串行通信单元,其单元号已设为2,因此需在新创建的协议中选取存储协议宏的单元及单元号,如图10-25所示。
图10-25 协议存储单元设置
4)双击图10-25中“New Protocol List”,用鼠标右键单击“New Protocol”创建一个新序列(Sequence),如图10-26所示。
图10-26 创建新序列(Sequence)
5)继续单击“New Sequence”,设置序列的各项参数,如图10-27所示。其中主要设定“Timer Tr”(Receive wait time,从开始接收步至收到第一个字节的时间)、“Timer Tfr”(Receive finish time,从接收第一个字节开始至收到最后一个字节的时间)和“Timer Tfs”(Send finish time,从发送第一个字节开始至发送完最后一个字节的时间)项,时间设置范围是00~99,单位可选10ms、100ms、1s、1min。设置示例如图10-27所示。
图10-27 设置序列(Sequence)
6)用鼠标右键单击“New Sequence”创建一个新步Step,如图10-28所示。在该Step的窗口中进行设置,其中主要设定通信命令“Command”,可选项包括“Send”(即只发送不接收型命令),“Receive”(即只接收不发送型命令)和“Send&Receive”(即收发兼备型命令)。本例中设定风机运行频率值需要“有问有答”,因此应选取“Send&Receive”命令,如图10-29。其他的步设置项包括重复计数器(Repeat)、重试次数(Retry)、响应告示(Response)、下一步处理(Next)和出错处理(Error)等,含义见表10-9。
图10-28 创建步(Step)
图10-29 设置步(Step)
表10-9 步设置项表
7)现根据富士变频器的通信帧格式编写的节点地址为“01”的变频器频率设定标准命令帧“SOH01ENQWS05(R(1),4)ETXBCC”为例,使用CX-Procotol软件编写该协议宏的发送协议,步骤如下:
①编写起始码SOH。用鼠标右键单击图10-29中的“Send Message”创建一个“New Message”,弹出“Message Editor”对话框,如图10-30所示。
图10-30 “Message Editor”对话框
单击图中“Header”项下的“Edit”按钮,在弹出的“Message Header”对话框中选择数据类型为“CODE”(编码),如图10-31a所示,然后单击“Edit”按钮,在下拉菜单中选择“SOH”为起始符,如图10-31b所示,单击“Insert”按钮,输入“SOH”,再单击“OK”按钮返回。最后还需在“Message Editor”界面的“Header”选项组下单击“Insert”按钮,才能插入起始码SOH。
图10-31 编辑起始码
a)“Message Header”对话框 b)选择启始码代码“SOH”
②编写变频器站号(节点地址)01。在图10-30中单击“Address”选项组下的“Edit”按钮,弹出“Message Address”对话框,如图10-32所示。选择数据类型“Constant ASCII”(ASCII码常数),输入地址“01”,设置完成后单击“OK”按钮返回。最后在“Message Editor”对话框的“Address”项下单击“Insert”按钮,才能插入站号01。
③编写字符ENQ。在图10-40中选择“Message Data”选项组下的“Constant Code”,单击“Edit”按钮,弹出“Code Entry”对话框,如图10-31b所示。在其下拉菜单选项中选择“ENQ”,单击“Insert”按钮即显示“ENQ”。随后单击“OK”按钮返回。最后在“Message Editor”对话框的“Message Data”选项组下单击“Insert”按钮,才能插入字符ENQ。
图10-32 “Message Address”对话框
④编写命令字符串“WS05”,其含义是向变频器写入(W)设定(S)频率值(代码05)。继续在图10-30中选择“Message Data”选项组下的“Constant ASCII”,输入字符“WS05”,单击“Insert”按钮完成输入。
继续输入空格SP的方法与此相同,不再赘述。已输入的命令帧如图10-33所示。
(www.daowen.com)
图10-33 编辑命令正文
⑤编写数据项“(R(1),4)”。继续在图10-33中的“Message Data”选项组内选择数据类型“Variable”(变量),单击右侧“Edit”按钮,在弹出的“Message Variable”对话框中选择“Variable”的变量类型,如图10-34a所示,继续单击“Variable”按钮,弹出“Channel”对话框,在“Type”选项组下选择“Read R()”(即从PLC指定通道内读取数据),在“Data”选项组中的“Address”下拉列表框中选择“Operand”(操作数),在“Primary Expression”选项组(即线性表达式:yN+x,N为重复步的次数)中设y为“0000”,x为“0001”,则“Text”中显示“R(1)”,如图10-34b所示。
R(1)的作用是当执行发送协议时,变频器将从PLC协议宏指令PMCR的发送首字所指定字的下一个字中读取频率设定值(10.2.5小节重点介绍PMCR指令)。单击“OK”按钮返回图10-34a。
继续单击“Length”按钮,弹出“Channel”对话框,设定发送数据的长度。在“Primary Expression”选项组下设y为“0000”,x为“0004”,如图10-34c所示,表示读取4个字节的数据(每个字节表示1位ASCII码字符,频率设定值为4位数)。如果“Type”设置为“*”,则表示接收所有数据。连续单击“OK”按钮返回到“Message Editor”对话框。在“Message Editor”对话框中,单击“Inset”按钮,插入变量数据“(R(1),4)”,如图10-35所示。
图10-34 变量数据设定
a)变量数据类型设定 b)变量存储地址设定 c)变量存储长度设定
⑥编写结束符ETX。在图10-35中单击“Terminator”选项组下的“Edit”按钮,弹出“Message Terminator”对话框,选择数据类型为“CODE”,然后单击“Edit”按钮,在下拉菜单选项中选择“ETX”为结束符,单击“Insert”按钮,输入“EXT”,如图10-36所示。再单击“OK”按钮返回。最后在“Message Editor”对话框的“Terminator”选项组下单击“Insert”按钮,才能插入结束符EXT。
图10-35 插入变量数据
图10-36 编写结束符
⑦编写校验码。在图10-35中单击“Check Code”选项组下的“Edit”按钮,弹出“Message Check Code”对话框,如图10-37所示。“Type”项选择“SUM(1Byte)”(即求ASCII码字符的校验和),“Data Type”选择“ASCII”,单击“OK”按钮返回。最后在“Message Editor”对话框的“Check Code”项下单击“Insert”按钮,才能插入校验码,如图10-38所示。
图10-37 编写校验码
图10-38 插入校验码
需要特别注意的是,变频器标准帧中规定的求校验和的计算范围是不包括起始码SOH的,因此需在图10-38中的“Check Code”项下将求校验和的启始字符设为“2”。单击“OK”按钮,1#变频器的频率设定发送协议编写完毕。将发送帧更名为“频率S1”(即1#变频器频率设定发送帧)。同理,可以编写出1#变频器的频率设定接收协议“频率R1”,结果如图10-39所示。进而再编写出1#变频器的起动/停止与双向运行协议和监测电流值协议,1#变频器的协议宏序列中各步的发送与接收信息汇总如图10-40所示。
图10-39 1#变频器的频率设定接收协议
图10-40 1#变频器协议宏序列汇总
按图索骥,可以编写出站号为02~04变频器的协议宏序列,所有协议宏各序列汇总如图10-41所示。特别注意序列号与各序列的对应关系,10.2.5节中介绍的PMCR指令将根据序列号来调用不同对象的协议宏,实现对4台变频器的实时控制与监测。
协议宏编写完成后需下载到串行通信单元中存储起来,在CX-Protocol软件中在线连接PLC,用鼠标右键单击“新PLC1”,选择“Connect to PLC”操作如图10-42所示。如未能正常连接通信,可以单击“Edit PC-PLC Comms Settings”项,确认PLC的硬件配置与通信参数等信息后再重试。
图10-41 协议宏序列汇总
当CX-Protocol与PLC在线通信后,[Offline]转为[Monitor](或[Run],取决于PLC当前的工作模式),此时单元号为2的串行通信单元CJ1W-SCU41显示出来,如图10-43所示。
图10-42 在线连接PLC
图10-43 进入在线状态
继续选中项目窗口中的“New Protocol”项,随后在菜单项“Protocol”下选择“Download Protocols”(下载协议),如图10-44所示。此时,弹出“Protocol Compile/Download”(协议编译并下载)对话框,如图10-45所示。
图10-44 下载协议
图10-45 “协议编译/下载”对话框
图10-45中列出了协议下载与存储目标“SCU[2]”,单击“Compile”按钮对协议进行编译,检查协议中是否存在语法错误,编译正确后再单击“Download”按钮才能将协议下载并存储到CJ1W-SCU41单元中。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。