PLC通过自由通讯口方式与变频器通讯.docx
PLC通过自由通讯口方式与变频器通讯zhangting导语:在传统的plc变频控制集成系统中,变频器的启动/停顿与故障监控由plc通过开关量实现端对端控制。1引言在传统的plc变频控制集成系统中,变频器的启动/停顿与故障监控由plc通过开关量实现端对端控制。变频器频率是由plc通过模拟量输出端口输出0510v或者420ma信号控制,需要plc配置昂贵的模拟量输出端口模块。变频器出现故障时由plc读取变频器的故障报警触点,对详细故障原因并不清楚,需查询变频器报警信息后再浏览变频器讲明书才知道。随着沟通变频控制系统及通讯技术的开展,可以利用plc及变频器的串行通讯的方式来实现plc对变频器的控制。2变频器的选型danfossvlt系列变频调速器提供串行通讯技术的支持。它所支持的串行通讯技术包括标准rs-485、profidrive、lonworks在内的多种现场总线方式。其中,rs-485通讯方式为用户提供了无需附加任何费用的、最为廉价实用的串行通讯方式。只需按照danfossvlt变频器规定的通讯数据构造、控制字和状态字格式发送数据即可实现与vlt变频的通讯。vlt为用户提供了两种控制字和状态字格式标准:即danfoss标准的danfossfc协议和profibus标准的profidrive协议。其中fc协议为用户提供了更多的与vlt有关的控制信息和状态信息。本工程中选用danfossfc协议。3plc的选型西门子工控产品在工控领域应用市场中有较高的占有率。s7-200系列是西门子simaticplc家族中的小规模plc成员,自由通讯口方式是s7-200plc的一个特色的功能,它使s7-200plc可以由用户自己定义通讯协议。利于自由通讯口方式,在本系统中plc可以与变频器和方便连接。plc通过自由通讯口方式与变频器通讯,控制变频器的运行,读取变频器自身的电压、电流、功率、频率和过压、过流、过负荷等全部报警信息等参数,这比通过外部端口控制变频器的运行具有较高的可靠性,节省了plc珍贵的i/o端口,又获的了大量变频器的信息。在本例中,作者将按照danfossfc协议来对s7-200的自由口进展编程。4vlt串行通讯4.1vlt通讯原理vlt变频器的串行通讯为异步半双工的方式,使用字节奇偶校验和块传送异或者校验方法。每个变频器都装备有一个标准的rs-485通讯端口,使协议可以通过rs-485电气接口来进展传输。plc为主机,变频器为从机,系统电码的传输由主机控制,主机不断发出某个地址的电码给从机,等待从机的响应。主机最多能带31个从机,在有中继器的情况下,可以增加到126个从机,也就是从机的地址最多可以设定到126。通讯时,每一个字节从一个起始位开场实行传送,然后再传递8个数据位,相应地组成一个字节,每个字节由一个奇偶校验位来验证传送的正确性,然后由一个终止位完毕。这样一个字节共由11个位组成。4.2vlt电码构造每个电码由一个起始字节stx开场,这个起始字节为stx=02h。随后紧跟一个表示电码长度lge的字节和表示变频器地址的字节adr。然后是一些数据字节随电码类型而变。整个电码由一个数据控制字节bcc来完毕。构造如附表。align=center附表vlt电码构造/align在上述数据构造中:1pke占用两个字节,包括参数命令类型和参数数目;2ind为索引,也占用两个字节,索引字节用于说明它是一个读命令还是写命令。在读命令中必须具有0400h的格式,在写命令中必须具有0500h的格式;3pwe为参数值块。占用四个字节,分为高字pweh和低字pwel。“比方主机要改变当前的变频器参数,新的参数就应写在参数pwe中发送给变频器;4pcd为经过块,占用4个字节。它有两种状态,当主机发给从机时,pcd1为控制字,pcd2为参考值;当从机发给主机时,pcd1为状态字,pcd2为当前的输出频率;5bcc为数据控制字节。由它来对接收到的命令进展检验正确与否。它的初始值为0,然后对该字节以前的所有字节进展异或者。5plc编程例如5.1变频器初始化子程序plc在第一次扫描时执行初始化子程序,对端口及rcv指令进展初始化。为了增加程序的可靠性,在初始化完成后,假如检测到端口空闲时那么运行rcv指令使端口处于承受状态。初始化子程序如下:network1/网络标题检测端口空闲可编在主程序中/设定端口属性ldsm0.0movb73,smb30network2/接收信息状态ldsm0.0movb102,smb87network3ldsm0.0movb16#02,smb88movb50,smb92movb50,smb94rsm87.2,1network4ldsm0.0atchint1,23/连接口0接收完成的中断network5ldsm0.0atchint0,9/连接口0发送完成的中断network6ldsm0.0eni/中断允许network7ldsm0.0movd&vb250,vd220/装入地址指针movb0,vb242/bcc码存放器清零movd&vb300,vd224/装入地址指针movb0,vb246/bcc码存放器清零5.2变频器参数修改子程序当要改变当前变频状态的信息需传送时,调用“控制子程序。首先它要制止端口的接收,然后对控制电码进展编辑和bcc检验码计算,并发送;当没有改变当前变频状态的信息需传送时,调用“空命令子程序。由于plc假如要读取变频器的当前工作状态,就要给变频器发送命令,而“控制子程序代码繁琐,执行效率不高,我们可以将“空命令程序需传送的电码预先编排好可以用短电码,“控制子程序程序代码如下:network1ldsm0.0/停顿端口0的接收rsm87.7,1rcvvb300,0network2ldl0.0movw16#047c,vw211movwlw1,vw213network3ldl0.1movw16#0434,vw211movw0,vw213network4ldsm0.0movwlw1,vw213network5/网络标题/网络注释ldsm0.0movb16#02,vb200movb16#0e,vb201movblb3,vb202movd0,vd203movd0,vd207htavb200,vb250,15network6ldsm0.0/计算bcc校验码forvw240,+1,+15network7ldsm0.0xorbvd220,vb242network8ldsm0.0incdvd220network9nextnetwork10ldsm0.0htavb242,vb265,1/bcc校验码写入发送缓冲区network11ldb=vb251,16#0e/发送缓冲区预备好后进展发送ss0.1,1network12lscrs0.1network13ldsm4.5xmtvb250,0network14scre5.3变频器通讯完成处理发送完成后执行发送完成中断程序,它的操纵包括:允许rcv;bcc码存放器清零;重新装入用于计算bcc校验码的地址指针;接收缓冲区中存放指令完毕字符的字节清零,用来判定下一条指令格式是否正确。接收完成后执行接收完成中断程序,它会将接收缓冲区中的十六进制ascii码复原成数据并保存。然后调用“接收处理子程序。它主要是求出接收缓冲区中指令的bcc校验码并与指令中的bcc校验码进展比对,并对电码中的数据进展处理。6完毕语使用此方法采用西门子通过自由口使用danfossfc协议对danfoss变频器进展控制,极大地减少了线路连接的复杂性,防止了现场可能的各种电磁干扰对控制设备的影响。0