西门子S7200与变频器MODBUS通讯实例详解_第1页
西门子S7200与变频器MODBUS通讯实例详解_第2页
西门子S7200与变频器MODBUS通讯实例详解_第3页
西门子S7200与变频器MODBUS通讯实例详解_第4页
西门子S7200与变频器MODBUS通讯实例详解_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

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

文档简介

西门子S7200与变频器MODBUS通信实例详情西门子S7200PLC简介西门子S7-200PLC具有实时模式下速度快、通信功能高、生产效率高的特点。 一致的模块化设计是促进创建和扩展低性能定制产品的解决方案。 来自西门子的S7 - 200微PLC可以作为独立的微PLC解决方案或与其他控制器结合使用。Modbus协议简介Modbus是Modicon (现在schneiderelectric公司的品牌)于1979年发明,是世界上第一个在工业现场使用的总线协议。ModBus网络是工业用通信系统,带智能终端的可编程控制器和计算机通过公共线路或本地专用线路连接。 那个系统构成包括硬件和软件两方面。 这可以应用于各种数据收集和过程监控。ModBus网络中只有一台主机,所有的通信都由他发出。 网络可支持247台以上的远程从站控制器,但实际支持的从站数取决于使用的通信设备。 通过采用这种系统,每个PC能够与中心主机交换信息,不影响每个PC执行其控制任务。1 MODBUS RTU协议在S7-200中的应用原理1.1 MODBUS RTU协议与S7-200之间的相互关系概述S7-200 CPU上的端口Port0支持MODBUS RTU协议,成为MODBUS RTU从站。 该功能在S7-200的自由端口通信模式下实现,因此可通过无线数据站等低速通信设备进行传输。在S7-200 CPU中,通过MODBUS RTU协议与支持MODBUS RTU的其他设备进行通信时,需要具有S7-200 CPU的MODBUS主站。 S7-200 CPU主站必须由用户自己在自由端口模式下使用相关协议编程。2从站指令的使用方法:在S7-200控制系统应用程序中,MODBUS RTU从属命令库仅支持CPU上的通信0端口(Port0)。 为了实现MODBUS RTU通信,需要Step7-Micro/WIN32 V3.2以上的编程软件,需要安装step7- micro/win32 v 3.2 instruction library (指令库)。 MODBUS RTU功能通过命令库中预先创建的程序功能块实现。MODBUS RTU协议应用于S7-200的基本过程(1)首先,检查S7-200控制中使用的微/win软件的版本,必须为step7-微/winv3.2以上。(检查Micro/WIN命令树中是否存在MODBUS RTU从命令库(图1 )。 数据库必须包含两个子程序: MBUS_INIT和MBUS_SLAVE。 如果未安装,则必须安装micro/win32 v 3.2 instruction library软件包编程时调用SM0.1子程序MBUS_INIT进行初始化,调用SM0.0研究MBUS_SLAVE指定参数。 有关参数的详细信息,请参见子例程的局部变量表。调用MODBUS通信命令库参数的含义是:模式选择:modbus启动/停止、1=启动0=停止从站地址:MODBUS从站地址中取值1247波特率:选项1200、2400、4800、9600、19200、38400、57600;奇偶校验:0=无校验1=奇校验2=奇偶校验延迟:附加字符间延迟,默认值为0关于最大I/Q比特:参加通信的最大I/O点数,S7-200I/O图像区域为128/128,默认值为128最大AI字:参与通信的最大AI信道数为16或32最大保持寄存器区域:参与通信的v存储体字(VW )保持寄存器区域起始地址:由VBx指定(间接地址方式)初始化完成标志:已成功初始化后1错误代码:0=无错误。1.3注意事项step7-要调用mcir/win32 v3.2instruction library (命令库),必须分配库命令数据区(Library Memory )。 库命令数据区域是相应库子例程和中断程序所需的变量存储区域。 如果在编程时不分配库指令数据区域,则编译时会发生很多相同的错误。子程序参数HoldStart和MaxHold指定的保持寄存器区域被分配到S7-200 CPUV数据存储区域,如果该数据区域与库指令数据区域不重复,则在运行中发生错误,无法正常通信。 注意MODBUS中保持寄存器区域由“字”地址指定,MaxHold中VW规定VB个数。3主站指令的使用方法:1. MODBUS RTU主命令库的功能通过调用用户程序预先创建的程序功能块来实现,该库对Port 0和Port 1有效。 此命令库将通信端口设置为以自由端口模式运行。2. MODBUS RTU主机指令库使用了一部分用户中断功能,创建其他程序时,用户程序无法禁止中断。3. MODBUS RTU主库需要CPU版本。 CPU版本必须为2.00或2.01 (即订单编号为6ES721*-*23-0BA* )。 S7-200 CPU不支持版本1.22或更低版本(包括版本1.22 )。使用MODBUS RTU主命令库,可读写MODBUS RTU从站的数字量、模拟I/O、保持寄存器。要使用MODBUS RTU主命令库,请执行以下操作西门子标准指令库的设置根据需要,创建用户程序调用MODBUS RTU主机指令库MODBUS RTU主站功能编程调用MODBUS RTU主机初始化和控制子程序在SM0.0中调用MBUS_CTRL,完成主站的初始化,启动其功能控制在SM0.0中调用MODBUS RTU主机初始化和控制子程序每个参数的含义为:a. EN启用:必须确保按扫描周期启用(使用SM0.0)b. Mode模式: 1时,启用MODBUS协议功能;0时返回系统PPI协议c. Baud波特率:支持的通信波特率为1200、2400、4800、9600、19200、38400和57600。d. Parity检查:检查方式选择0=无勾选1=奇数比较2=偶然比较e. Timeout超时:主站等待从站响应的时间以毫秒为单位,通常的设定值为1000毫秒(1秒),可设定的范围为1 - 32767。注:此值必须设置为足够大,以确保从站响应的时间。f. Done完成位:初始化完成后,该位自动设置为1。 您可以使用此位开始MBUS_MSG读写操作(请参见例程)g. Error初始化错误代码(仅Done位为1时有效):0=无错误1=验证选择不正确2=波特率选择不正确3=模式选择不正确调用MODBUS RTU主读写子例程MBUS_MSG并发送MODBUS请求调用MODBUS RTU主机读写子程序每个参数的含义为:a. EN启用:一次只能启用一个读写功能(MBUS_MSG )注意:建议在最后一个MBUS_MSG指令的Done完成位中启用每个读写功能(MBUS_MSG )。 这是为了确保所有读写指令都循环执行(请参阅例程)。b. First读写请求位:必须对每个新的读写请求使用脉冲触发器c. Slave从站地址:可选范围1 - 247d. RW从站地址:0=读取,1=写入注意:1 .开关量输出和保持寄存器支持读取和写入功能2 .开闭量输入和模拟输入仅支持读取功能e. Addr读写从站的选择读写的数据类型数据地址: 000010xxxx-开关量输出10001至1xxxx -开关量输入300013xxxx-模拟输入400014xxxx-保持寄存器f. Count数据个数通信的数据个数(比特或字的个数)注意: MODBUS主站可读写的最大数据量为120字(每个MBUS_MSG指令)g. DataPtr数据指针:1 .读取指令时,读取的数据保存在该数据区域2 .写入指令时,将写入的数据放入该数据区域h. Done完成位读写功能完成位i. Error错误代码:错误代码仅在Done位为1时有效0=无错误1=响应验证错误2=未使用3=接收超时(无从站响应)4=请求参数错误(slave address,MODBUS address,count,RW )5=未使用5=MODBUS/自由端口6=MODBUS被其他的要求所追赶7=响应错误(响应不是请求的操作)8=对CRC校验和错误的响应-是101=从站不支持请求的功能102=从站不支持数据地址103=从站不支持此数据类型104=从属设备故障105=从机接收到消息,但是响应延迟了106=从站忙,拒绝了这个信息107=从站拒绝信息108=从属存储器奇偶校验错误常见错误:多个MBUS_MSG指令同时有效时,发生6号错误从站delay参数的设定时间过长时,主站3号可能会错误如果从站不停电或运行,则网络故障可能会发生主站的3号错误3 .在CPU的v数据区域中为库命令分配库存储器MODBUS Master命令库需要284字节的全局v存储。西门子S7200 PLC MODBUS支持的功能代码功能代码说明1读取单一/多个线圈的实际输出状态。 功能1返回任意数量的输出点的on/off状态(q )。2读取单个/多个线圈的实际输入状态。 功能2返回任意数量的输入点的on/off状态(I )3多个保持寄存器。 功能3返回v内存的内容。 保持寄存器在MODBUS中为字型,1个请求最多可读取120字。4读取单一/多个输入寄存器,返回模拟输入值。5写单线圈(实际输出)。 功能5将实际的输出点设定为指定的值。 该输出点不是强制性的,用户程序可以改写在MODBUS请求中写入的值。6写个别保持寄存器。 功能部6将单个保持寄存器的值写入S7-200的v存储区域。15写多个线圈(实际输出)。 功能部15在S7-200的q映射区域中写入多个实际的输出值。 开始输出点必须是字节的开始点,例如Q0.0或Q2.0,并且输出的数量必须是8的倍数。 MODBUS从属协议命令的限定。 这些点不是强制性的,用户程序可以改写在MODBUS请求中写入的值。16写入多个保持寄存器。 功能部分16将多个保持寄存器写入到S7-200的v块中。 一个请求最多可以写入120个字符。例国产精密驱动逆变器与S7200 CPU224XP PLC通信(1)设定变频器的通信参数参数设定值说明P0.014将启动指令变更为串行通信P0.032将频率指定变更为串行通信P3.091339600无波特率奇偶校验P3.103从站地址3硬件布线S7200端口1第三条腿-rs485第八条腿-RS485-(3)初始化程序因为反相器控制地址是反相器的控制地址2000H,所以索引10是8192,MUDBUS地址40001的开头,需要加1,控制地址8193,功能代码4是读写寄存器,有效变频器的控制指令为17,因此从17传输至VW200时变频器启动(5)设定变频器的规定频率变频器的通信控制字节西门子通信MUDBUS协议在加工控制中使用了最广泛的协议,具有以下特征1 )使用方便、利用MUDBUS库文件的简单几个指令,可以与智能仪表、变频器、打印机等进行通信,不需要为其他硬件增加成本的MODBUS总线为仪表、智能高低压电器、变送器、可编程控制器、休与其他现场总线和工业网络相比,MODBUS具有以下特点2 )标准,开放:用户免费放心使用MODBUS协议不需要支付许可费用,与侵犯知识产权无关。 目前支持MODBUS的厂商超过400家,支持MODBUS的产品超过600种。 在中国,MODBUS已经成为国家标准GB/T19582-2008。 根据不完全统计,到2007年,MODBUS的节点实现数超过了1000万个。3 )应用广泛: MODBUS协议设备具有RS232/485接口时,可使用本产品实现与现场总线PROFIBUS的相互连接。 例如,具有MODBUS协议接口的逆变器、智能高低压电气设备、电动机起动保护装置、电力测量装置、智能现场测量设备、各种振荡器和仪表等。4)MODBUS能够支持多种类型的电接口: MODBUS总线协议采用主站

温馨提示

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

评论

0/150

提交评论