永宏FBs-PLC的自由通讯协议及应用发布时间:2008-07-3002:59:29点击率:5223引言电子技术的日益发展,通讯接口给工业控制的自动化集中控制带来巨大的变化,系统的分布控制,网络的远程监控等都是通过通讯来实现监控。各个智能设备之间要进行正常通讯,首先要保证以下3个条件一致:通讯硬件界面相同;通讯参数设置一致;以及通讯协议一致。在串口的通讯中,界面都已经是标准化,参数设定亦可透过设定来保持一致。但在智能自动化设备中,由于品牌和产品都存在差异,对于同一种产品,不同的品牌就可能存在不同的通讯协议!所以,智能设备的通讯,设备的选择是关键!但针对同种协议的产品,就有可能缩小设备选型范围,势必会对系统的组成存在影响。如造成成本的提升,系统得不到优化等问题。现就针对通讯协议,介绍永宏PLC的自由口通讯协议做介绍。即通过自由协议,可以跟任何一个智能设备进行连接,进行数据的传输。大大方便了技术人员的选型,更有利控制系统的优化,性价比的提升!1.系统硬件要求1.1永宏FBs-PLC通讯功能永宏FBs-PLC提供相当强大的通讯功能,SoC单晶片中集合5个高速通讯端口。主机自带一个通讯端口。多样的扩展方式,可以选择通讯模块或者通讯板实现通讯端口的扩展,单一主机可以最多扩展至5个通讯端口;数据传输可以选择ASCII码或者速度快一倍的二进制码来传输;每个通讯端口通讯速率高达921.6Kbps;支持RS-232,RS-485,USB和Ethernet等界面;通讯协议提供永宏标准通讯协议,工业界通用的ModBus标准协议,以及自由口协议。这里我们就永宏PLC的自由通讯协议做进一步探讨。1.2永宏PLC自由通讯协议简介所谓自由通讯协议,永宏PLC作为主站,根据通讯的从站设备通讯格式来编写通讯传输数据格式,以保证通讯格式的一致性。在符合从站设备的数据格式时设备才能识别主站发送出来的命令要求,再根据命令来进行处理数据、做响应回复等工作。这样将大大提高PLC控制对象的通讯接口兼容。图1.1RS-485单主多从通讯示意图如图1.1所示,一个永宏PLC可以跟多个智能从站进行通讯;智能从站可以同为一种设备不同品牌,或者不同设备不同品牌,例如其他品牌的PLC、变频器、智能仪表等,只要符合RS-485通讯要求即可组网。永宏FBs-PLC的自由通讯协议及应用发布时间:2008-07-3002:59:29点击率:52242.软件系统要求与设计2.1串行口通讯协议格式在串行通讯中,数据的格式一般如下图所示:图1.2串行口一般通讯数据格式在协议中,一些通讯协议要求命令请求码,一些则不需要;从起始符到结束符,格式都相似。起始符:表示通讯命令的开始,常用02H表示。地址:从站设备的地址,范围在“00H~7FH”。功能码:从站设备所规定的功能码,以响应主站的作动要求。数据:根据命令码执行的数据区。校验:为保证数据的准确可靠的通讯,协议中都设定校验码。常见的校验有CRC,CHECKSUM。结束符:表示一笔通讯命令的完成。通常使用03H表示。在所使用的设备中会,做相关的协议规定和参数说明,所以我们只要依照设备的通讯格式编写通讯命令,请求从站执行命令,并根据主站是否要求做相关的回应,来完成响应。下面,我们会以与士林变频器通讯为实例,做相关的介绍。2.2永宏PLC端软件设计永宏PLC在通讯编程方便提供相当便利的指令和编程方法。在指令方式,使用一个功能指令配合通讯表格,即可完成通讯命令。下面就对指令与表格编辑做相关介绍。永宏PLC提供两个通讯指令FUN150和FUN151,其中FUN150用于ModBus协议通讯用,这里就不做介绍,详细请参考《永宏PLC使用手册》介绍。FBs-PLC可由Port1、2、3或4等四个通讯端口来作永宏多台CPULINK联机或与具有RS-232/RS-485通讯接口的智能型外围通过通讯方式作联机整合应用。FUN151(CLINK)通讯联机便利指令可指定那个通讯端口以何种工作模式运作共有Mode0~3四种工作模式,其中的Mode3模式为〝高速LINK网络〞模式只允许Port2使用,其余都为“一般LINK网络”,下表是高速LINK与一般LINK指令模式的差别说明。2.3FUN151(CLINK)通讯联机便利指令FUN151通讯指令梯形图符号如下:图2.1FUN151指令符号说明:EN:执行控制输入PAU:执行暂停输入BAT:通讯放弃输入ACT:通讯正执行中输出ERR:通讯出错指示输出,可以在监视中查找对应的错误码。DN:通讯正常完成指示输出。永宏FBs-PLC的自由通讯协议及应用发布时间:2008-07-3002:59:29点击率:5225另外还有通讯端口的特殊继电器和特殊寄存器,简单介绍如下。我们针对文章内容,介绍一下MD1模式的工作。对于MD2模式,主要是当要求永宏PLC被动接收其他设备后再做响应时使用,若只做接收不回应,则就不需要该模式,所以我们重点讲一下MD1的工作原理。2.4FUN151(CLINK):MD1通讯联机便利指令(自由协议主动模式)FUN151(CLINK):MD1模式提供永宏PLC主动与具有RS-232/RS-485通讯端口的智能型外围设备联机;通讯格式由WinProladder程序编写,必须与所要联机的通讯设备一致,才能成功联机。2.4.1MD1操作数SR的说明SR:数据传送表格的起始寄存器。即与FUN151指令中的SR对应,例如SR填写“R5000”时,则RS+0就为R5000,而RS+1即是R5001,以此类推。说明:1.在选择“只传送”模式时,接收信息的起始符+结束符无意义;2.在使用“传送后接收”时,要设定好起始符和结束符,以保证通讯接收无误,通讯程序也简单有效;3.当接收回应信息时,接收完毕后CPU将计算总接收数据的长度,填到WR+8寄存器。2.4.2MD1操作数WR的说明WR:通讯指令运作占用寄存器,具体寄存器作用如下所示。2.4.3泛用通讯表格的编辑在SR的寄存器空间,对应的建立一个通讯表格,在表格中依照从站设备的通讯协议,编写通讯数据;这样很直观,很有效率就能完成从站设备通讯数据的编写。当然,用户可以对寄存器做好各项运算后,对应的填写正确数值,也能完成通讯命令的编写。例如SR+1为R5001寄存器,假设设备的起始符为02H,结束符为03H,可以直接将数据“0203H”往5001里面送.但当中运算、数据转换等的计算较表格,比较复杂,建议还是采用表格编写。在WinProLadder程序的专案管理窗口中的“泛用通讯表格”标签上,点击右键来建立一个表格;或者可以选择FUN151指令,然后按“Z”建来建立。通过这样的操作后,会弹出“自由通讯表格”的编辑框,如下图所示。图2.2自由通讯表格此时的表格类别固定为“泛用通讯表格”;在表格名称中给表格起名称“自由口通讯”;不能重复。起始地址输入与FUN151的SR起始地址一致(若是使用“Z”时,则自动为SR的起始值”)。表格容量设定一般为动态分配,这样在添加命令时系统会自动分配空间;使用空间也不能与程序其他地方重复使用。另外在连接PLC后,“资料由PLC加载”和“资料由ROR加载”才能生效;即表示表格资料将从PLC中提取上来。在完成上面的设定以后,表格即完成建立。图2.3自由通讯表格在通讯模式中,选择“只传送”或者“传送后接收回应”;即与SR中的SR+0相对应。起始码和结束码:设定接收信息的起始符和结束符;与SR中的SR+1对应。在“通讯命令表格编辑”中,即要依从站设备通讯协议规定的数据格式来输入命令。通讯传送的是ACSII码,命令可以使用十进制、十六进制和字符来表示;在要用字符表示时,要使用“’”单引号引起来,表示字符的ACII码。接下内容,我们以实例应用来介绍自由通讯口的MD1主动模式的应用。永宏FBs-PLC的自由通讯协议及应用发布时间:2008-07-3002:59:29点击率:52273.自由通讯协议的应用3.1永宏PLC与士林(SS系列)变频器通讯3.1.1硬件配置士林变频器提供的是RS-422/485的通讯界面,在这里永宏PLC端增加一块FBs-CB25来扩充一个RS-485的通讯界面。硬件上配线如下图所示。图3.1永宏PLC与士林变频器通讯配线图另外在FBs-CB25端,请设定终端电阻的拨动开关到”O”状态,表示使用终端电阻。变频器端的通讯参数设定控制方式来源:1(Pr31)为通讯控制波特率:;9600(Pr32);站号:1(Pr36);数据位:8BIT(Pr48);停止位:1停止位(Pr49);校验:无校验(Pr50);CR校验(Pr51)将波特率、停止位、数据位、校验设定与PLC端的Por2口一致,其他参数根据需要做调整。3.1.2士林变频器通讯协议○1上位机通讯请求;○2等待时间○3变频器回应数据○4上位机处理时间○5上位机回复数据3.1.3变频器通讯数据格式1,上位机至变频器通讯要求(我们针对内容只介绍格式A:写资料至变频器。其他从略)。2,资料写入时,变频器回应数据格式其中句柄说明(ASCIICODE)STX----H02ETX----H03ENQ----H05ACK----H06CR-----H0DNAK---H15LF------H0A另外,SUM-CHECK计算范围为:从站号开始到资料的的低字节结束数据的ASCII码总和;取低字节部分。计算范例如下:其他通讯格式请参考士林变频器使用手册。3.1.4通讯控制字依据以上通讯协议规定,可以得到控制变频的运行和停止控制命令如下。3.1.5PLC程序输入正转命令:当FAH的资料为“2”时变频器正转。数据格式如下:停止命令:当FAH的资料为“0”时变频器正转。数据格式如下:根据以上的命令在软件中编写程序如下。程序部分:图3.2永宏PLC通讯程序示意图表格部分:图3.3永宏PLC通讯表格示意图从R5003开始到R5015,共有13个寄存器,则系统将自动将数据长度13填写到R5002中:“0DH”(ASCII码)。另外通讯数据的校验码,可以通过拖选“资料预览”中的数据范围来计算。如该正转命令的数据校验总和值为R5004~R5012,在拖选中该范围后,表格底下的“总和值(字节)=”将计算得到“D9”。3.1.6PLC程序执行到这,控制变频器正转命令编辑完毕。这样,我们运行PLC。将M1接点至ON后,PLC将通讯数据送达变频器。此时,变频器将正转运行!同时变频器将向PLC回应数据到WR中。回应数据如下:4.结束语综上,我们就自由通讯的主动模式做了介绍,由于篇幅问题,请读者自行测试控制变频器停止命令,以及自由通讯的MD2被动模式,请客户自行参考永宏PLC相关使用手册的介绍。永宏PLC强大的通讯能力,便利的编程方法,几乎可以兼容所有智能通讯设备。极大程度的提高可编程控制器的接口兼容性,使得客户在选型、系统配置上大大的提供便利性。参考文献:[1]永宏可编程控制器使用手册I和使用手册II.台湾永宏电机股份有限公司[2]永宏PLC编程软件使用手册.台湾永宏电机股份有限公司[3]士林变频器SS系列使用手册.苏州士林电机有限公司作者简介:孙恒孝(1980-),毕业于合肥工业大学自动化系主要从事PLC行业的技术支持与行业应用工作联系方式:范堤商贸(上海)有限公司021-66315471