PLC通过MODBUS协议与ABB变频器通信_第1页
PLC通过MODBUS协议与ABB变频器通信_第2页
免费预览已结束,剩余7页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、PLC通过MODBL协议与ABB变频器通信摘要:本文通过西门子公司的 S7-200 pic 与 abb 公司 acs510 变 频器组成的某定量添加控制系统实例对modbus 协议实际应用进行了介绍。关键词:modbus plc 变频器中图分类号:tp273 文献标识码:a文章编号:1007-9416(2012)02-0072-021、引言modbus 作为一种简单易用的通讯协议已经越来越多的应用在各 类仪器仪表中,下面笔者以西门子公司的s7200plc 通过自由口与abb公司的acs510变频器使用modbus协议进行通信为例, 对modbus 通讯的应用进行叙述,以期达到抛砖引玉的效果。2

2、、硬件配置图 1 给出了 simatic s7-200cpu 与四台 abb acs510 变频器构成的 modbus 网络。s7-200cpu 为主工作站。变频器 1、变频器 2,变频器 3 和变频器 4 为从工作站。 设置变频器的通讯协议参数 9802 均为 1,即变频器通过 rs485 串行通讯口和 modbus 总线相连。设置 通讯速率参数 5303 为 19.2kb/s。设置校验方式参数 5304 为偶校验, 1 个停止位。设置控制类型参数 5305 为 abb 传动简版。从左到右 变频器 1、2、3 和4 的站地址参数 5302 分别设置为 3、4,5 和 6, 并将变频器 4 的

3、总线终tnii学朮友叢网论文发表专家一l端电阻 dip 开关置 on。在对变频器以上参数匸交发表专家一LB 国学朮发叢网设置完成后应对传动重新上电激活,使新地址及通讯协议生效。变频器控制要求:变频器分现场和远程两种控制模式,现场控制柜设置三位置模式 选择开关,分别为停止、本控和远程。在本控模式下启动/停止命令由现场开关触发数字输入 di1 控制,频率由现场的电位器改变模 拟输入 ail 的输入电压进行调节。当选择远程模式时,数字输入 di2 接通,通知 pic 现变频器已经处于远程控制模式。为能够实现以上 功能并在人机界面能够观察到变频器的运行频率和通过模拟输入 ai2 输入的实际流量,还需要

4、对变频器其他部分参数进行设置,见 表 1。3、程序设计3.1 通讯内容主工作站轮流发送请求报文到每个变频器从工作站,随之每个从 工作站产生响应报文。 pic主工作站分别对每个变频器从工作站进 行如下操作:(1) 对每个变频器的输出线圈 13 的状态进行查询;(2) 查询变频器状态寄存器 40004 状态字、40005 实际值、40006 实际值和 40007 实际值。4000540007 数据值对应于表 1 中变频器 参数5310、5311 和 5312 中的实际值。(3) 写变频器控制字,对变频器的远程启停进行控制。(4)写变频器寄存器, 对变频器的外部2 给定进行控制匸交发表专家一LB 国

5、学朮发叢网对一个变频器的数据全部读写完成后,开始对下一站号变频器的 数据进行读写。当所有变频器的数据读写完成后,主工作站重新开 始对最小站号变频器的数据进行读写。数据的传输及接受采用pic自由通讯口模式进行,报文按照 modbus 的协议组织。3.2 通讯格式modbus 请求报文格式如表 2。因在 s7-200plc 发送指令 xmt 中,发送缓冲器的第一个字节指定 的是数据传输的字节数,从第二个字节以后的数据为需要发送的数 据。因此,结合 modbus 请求报文格式,pic 发送数据的格式如表 3。在整个网络通信过程中, 主工作站轮流发送请求报文到每个从工 作站,随之每个从工作站必须产生响

6、应报文返回到主工作站。当主 工作站向从工作站发送请求报文和接受从工作站返回的响应报文 时,在主工作站储存区开辟了发送缓冲区和接受缓冲区。主工作站 向从工作站发送请求报文时,首先对相应从工作站输出缓冲区的数 据进行 crc 运算生成校验码,并将校验码叠加在输出缓冲区的数据 之后再传送到发送缓冲区,然后再由发送指令发出。建立一个远程 循环结束标志位,当响应报文全部接受完成,置该位为on。主工作站在接受从工作站的响应报文时,先把响应报文输入到接受缓冲 区,再把接受缓冲区中的数据传送到输入缓冲区。为此,在主工作 站中要留有两个数据存储区,一个作为报文请求(输出缓冲区), 另一个作为报文响应(输入缓冲区

7、)。匸交发表专家一LB 国学朮发叢网在 modbus rtu 通讯协议中都必须要求有 crc 循环冗余校验。crc 循环冗余校验为两个字节,附加在报文后面的crc 的值由发送设备计算,当放置 crc 值于报文时,高低字节必须交换。首先发送低位 字节,然后再发送高位字节。故此在发送缓冲区中的数据要比输出 缓冲区的数据多两个 crc 循环冗余校验字节。接收设备在接收报文 时重新计算 crc的值,并将计算结果于实际接收到的 crc 值相比较。 如果两个值不相等,则传送的数据为错误。3.3 程序描述sbr0 子程序:在 pic 上电初始化阶段,设置通讯口为自由口通信 方式,并设置波特率及校验方式,允许

8、全部中断时件,并设置定时 中断的时基为 20 毫秒。在这里设置波特率为 19.2kb/s,偶校验, 每字符 8 个数据。注意必须与从工作站的通讯参数相同。为输出和 输入缓冲区的数据地址建立间接寻址指针。并设置请求报文的剩余 数目为 4,设置从工作站的查询剩余数目为 4。将输出缓冲区指针中指出的地址为起始地址的12 个字节通过块传送命令传送到发送缓冲区单元中。并复位远程循环结束标志位。对发送缓冲区中的报文进行运算生成crc,交换 crc 寄存器中的高低字节,并将交换完成的 crc 寄存器叠加到发送缓冲区中。启动定时中断和发送中断,并通过发送指令将发送缓冲区中的请 求报文发送。建立跳转入口,标号

9、1匸交发表专家一m国学朮发叢网若循环未结束,跳转到标号 1。程序不向下执行,直至远程循环 结束,标志位为 on。远程 i/o 更新完成,将接受的报文通过块传送命令传送到接受缓 冲区指针指出的接受缓冲区中。修改发送缓冲区和接受缓冲区指针值,指向下一个输出和输入缓 冲区字节地址。将请求报文的剩余数目减1。当请求报文的剩余数目为零时,重新设置请求报文的剩余数目为4,将从工作站的查询剩余数目减 1。当工作站的查询剩余数目为零时,重新设置从工作站的查询剩余 数目为 4,为输出和输入缓冲区的数据地址重新建立间接寻址指针。int_O 中断程序:在接受报文超时情况下,禁止接受中断和接受定 时中断,置远程循环结

10、束标志位为 on。int_1 中断程序:在发送超时情况下禁止发送中断和发送定时中断,置 pic 为 stop 模式。int_10 中断程序:禁止发送完成中断,启动接受定时中断 int_0 和接受数据中断程序 int_11。int_11 中断程序:若接受的首字符(从工作站地址)为从工作站 的正确地址,则建立一个接受字符的地址指针。并把接受到的字符 装入到接受字符指针指出地址中。增加指针的数值,指向下一个地 址。并启动中断程序 int_12。int_12 中断程序:把接受到的第二个字符(功能码)装入到接受字符指针指出地址中,增加指针的数值,指向下一个地址。启动中 断程序 int_13。int_13 中断程序:把收到的第三个字符(字节数)装入到接受字符指针指出地址中,并修改指针值。第三个字符为接受的不含crc校验码字符的总数目,剩余接受字符数目为将字节数加2,若反馈的功能码为十六进制数 Of,全部剩余字符数目为 5。将全部剩余字 符数目置入到累加器 ac1 中,当累加器 ac1 为零时,接收字符也就 完成。启动中断程序 int_14。int_14 中断程序:将接受到的字符装入接受字符指针指出地址 中,并修改地址指针值和将将累加器ac1 数值减一。若累加器 ac1的数值为零。则关闭字

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论