




已阅读5页,还剩4页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
S7-200_6_Modbus通讯实验2008-11-10 19:59:04|分类: AS_L |标签: |字号大中小订阅 1学习目标掌握通讯协议的概念了解Modbus的通讯协议能够使用Modbus协议库实现两台PLC之间的通讯2实验目标设置两台PLC使用Modbus进行通讯,一主一从。Modbus主站控制Modbus从站的输入、输出、保持寄存器。3相关资料S7-200系统支持的PPI、MPI和PROFIBUS-DP协议通常以RS-485电气网络为硬件基础。RS-485串行通信标准采用平衡信号传输方式,或者称为差动模式。平衡传输方式可以有效地抑制传输过程中干扰。S7-200系统中的RS-485端口是半双工的,不能同时发送和接收信号。通过S7-200 CPU通信口的自由口模式实现Modbus通信协议,可以通过无线数据电台等慢速通信设备传输。这为组成S7-200之间的简单无线通信网络提供了便利。Modbus是公开通信协议,其最简单的串行通信部分仅规定了在串行线路的基本数据传输格式,在 OSI 七层协议模型中只到1,2层。Modbus具有两种串行传输模式,ASCII 和 RTU。它们定义了数据如何打包、解码的不同方式。支持 Modbus 协议的设备一般都支持RTU格式。Modbus是一种单主站的主/从通信模式。Modbus网络上只能有一个主站存在,主站在Modbus网络上没有地址,从站的地址范围为0-247,其中0为广播地址,从站的实际地址范围为1-247。Modbus通信标准协议可以通过各种传输方式传播,如RS232C、RS485、光纤、无线电等。 在 S7-200CPU通信口上实现的是RS485半双工通信,使用的是 S7-200 的自由口功能。西门子在 Micro/WIN V4.0 SP5 中正式推出 Modbus RTU 主站协议库(西门子标准库指令)。使用 Modbus RTU 主站指令库,可以读写 Modbus RTU 从站的数字量、模拟量 I/O 以及保持寄存器。4实验方案通讯实验需要两台CPU,在两台CPU中下载不同的程序,完成Modbus通讯。从站CPU要首先处于接收状态,然后主站CPU开始对从站进行操作。从站的程序如下:编程时使用SM0.1调用子程序MBUS_INIT进行初始化,使用SM0.0调用MBUS_SLAVE,并指定相应参数。关于指令MBUS_INIT指令参数的说明,详见手册第351页。在从站的程序中,需要指定从站的地址,数据传输速率,校验方式等。在设置完毕后,从站处于接收状态。主站的程序如下:(1) 使用SM0.0调用MBUS_CTRL完成主站的初始化,并启动其功能控制。在初始化时,需要指出从站的地址、数据传输速率、校验方式等,这些必须与从站的设置相一致。(2) 调用 Modbus RTU 主站读写子程序MBUS_MSG,发送一个Modbus 请求。通过MBUS_MSG指令可以对从站的输入、输出、保持寄存器进行操作。5实验总结 每一个新的读写请求必须使用脉冲触发。 在向从站写入数据时,要注意数据的地址,其表示方式如下:00001 至 0xxxx - 开关量输出;10001 至 1xxxx - 开关量输入;30001 至 3xxxx - 模拟量输入;40001 至 4xxxx - 保持寄存器 Modbus主站可读/写的最大数据量为120个字。 在通讯出现故障时,可以通过模块的故障代码可以对故障进行判断。 Modbus RTU Master协议指令库使通信口工作在自由口模式下,此时不能与 Micro/WIN软件通信。要在切换回PPI协议,可以将MBUS_CTRL指令的Mode输入端设置为逻辑“0”,或者将CPU的允许模式选择开关置为STOP位置。 向从站数字量输出点发送数据时,数据长度为1时,发送1位,数据长度为8时,发送8位,即1个字节。数据长度为16时,发送16位,即2个字节,数据长度不能设置为其他数值,否则会报错。基于MODBUS协议的上位机与PLC及智能仪表之间的通信实现方法 来源:d | 类别:技术 | 时间:2009-4-9 14:06:15 字体:大 中 小 摘要:介绍了Modbus通信协议的特点,结合作者的实践经验,介绍基于MODBUS协议下工控机为主站,PLC及智能仪表为从站的通讯的实现方法.关键词:Modbus通信协议 RS-485 PLC 工控机 智能仪表一、引言: 可编程控制器由于抗干扰能力强,可靠性高,编程简单,性能价格比高,在工业控制领域得到越来越广泛应用。基于PLC的控制系统多数情况下会以微机为主机,PLC为从机.完成对生产过程的自动控制,工艺参数的显示和修改MODBUS RTU规约是目前国际上普遍采用的主流通讯协议之一.随着越来越多的企业开始向生产和管理的自动化转变,MODBUS得到了广泛的应用.二、MODBUS RTU通讯协议简介:MODBUS是一种工业控制系统串行通信协议, 当在网络上通信时,Modbus协议决定了每个控制器须要知道它们的设备地址,识别按地址发来的消息,决定要产生何种行动。如果需要回应,控制器将生成应答并使用Modbus协议发送给询问方。Modbus协议包括ASCII、RTU、TCP等,它需要对数据进行校验,其中RTU模式采用16位CRC校验.当控制器设为在Modbus网络上以RTU(远程终端单元)模式通信,在消息中的每个8bit字节包含两个4bit的十六进制字符.这种方式的主要优点是:在同样的波特率下,可比ASCII码传送更多的数据.三、电气接口:本套系统采用RS-485作为电气接口.它具有干扰抑制性好、传输距离长、组网方便等特点,非常适合组成工业级的多机通信系统.网络采用总线型结构,半双工,终端加电阻.电缆选用带有金属网状屏蔽层的双绞线.它可以消除由于磁耦合引起的共模噪声,而金属屏蔽层可以阻断电容、电磁及高频磁耦合引起的噪声。另选用RS232/RS485转换器。通过转换器,我们就可以利用工控机的RS232串口,快速地开发基于RS485串口的上位机通信软件。四、PLC程序设计:本系统中的可编程控制器采用西门子S7-200系列.使用指令库中的MBUS_INIT和MBUS_SLAVE指令.以下是系统中用于PLC的通讯程序:NETWORK 1 /首次扫描时初始化Modbus从属协议/将从站地址设为1,将端口0设为9600波特,将校验设为偶数, /允许存取所有的I、Q和AI数值,允许存取1000台保存寄存器(2000个字节) /从VB0开始。LD SM0.1CALL MBUS_INIT, 1, 1, 9600, 2, +0, +128, +32, +1000, &VB0, M0.1, MB1NETWORK 2 /每次扫描时执行Modbus从属协议LD SM0.0CALL MBUS_SLAVE, M0.2, MB2五、上位机通讯软件的设计方案:1 初始化 为加快开发速度,上位机通讯软件的编程可以使用MSCOMM控件,用控件对通讯软件进行设定需要使用的串口地址、波特率、校验方式、数据缓冲区等初始化操作.2 命令字发送 MODBUS规定完整的命令应由从机地址、功能码、数据段和校验码组成。命令字发送必须严格遵守该规定。计算机发送命令:设备地址 命令号01 起始寄存器地址高8位 低8位 读取的寄存器数高8位 低8位 CRC校验的低8位 CRC校验的高8位3 下表是Modbus支持的功能码:功能码 名称 作用 01 读取线圈状态 取得一组逻辑线圈的当前状态(ON/OFF) 02 读取输入状态 取得一组开关输入的当前状态(ON/OFF) 03 读取保持寄存器 在一个或多个保持寄存器中取得当前的二进制值 04 读取输入寄存器 在一个或多个输入寄存器中取得当前的二进制值 05 强置单线圈 强置一个逻辑线圈的通断状态 06 预置单寄存器 把具体二进值装入一个保持寄存器 07 读取异常状态 取得8个内部线圈的通断状态,这8个线圈的地址由控制器决定 08 回送诊断校验 把诊断校验报文送从机,以对通信处理进行评鉴 09 编程(只用于484) 使主机模拟编程器作用,修改PC从机逻辑 10 控询(只用于484) 可使主机与一台正在执行长程序任务从机通信,探询该从机是否已完成其操作任务,仅在含有功能码9的报文发送后,本功能码才发送 11 读取事件计数 可使主机发出单询问,并随即判定操作是否成功,尤其是该命令或其他应答产生通信错误时 12 读取通信事件记录 可是主机检索每台从机的ModBus事务处理通信事件记录。如果某项事务处理完成,记录会给出有关错误 13 编程(184/384 484 584) 可使主机模拟编程器功能修改PC从机逻辑 14 探询(184/384 484 584) 可使主机与正在执行任务的从机通信,定期控询该从机是否已完成其程序操作,仅在含有功能13的报文发送后,本功能码才得发送 15 强置多线圈 强置一串连续逻辑线圈的通断 16 预置多寄存器 把具体的二进制值装入一串连续的保持寄存器 17 报告从机标识 可使主机判断编址从机的类型及该从机运行指示灯的状态 18 (884和MICRO 84) 可使主机模拟编程功能,修改PC状态逻辑 19 重置通信链路 发生非可修改错误后,是从机复位于已知状态,可重置顺序字节 20 读取通用参数(584L) 显示扩展存储器文件中的数据信息 21 写入通用参数(584L) 把通用参数写入扩展存储文件,或修改之 在这些功能码中较长使用的是1、2、3、4、5、6号功能码,使用它们即可实现对下位机的数字量和模拟量的读写操作。4 下表是MODBUS地址映射到S7-200的地址:MODBUS地址 S7-200地址 MODBUS地址 S7-200地址000001 Q0.1 030001 AIW0000002 Q0.2 030002 AIW2000128 Q15.7 030032 AIW62010001 I0.0 040001 VW0010002 I0.1 040002 VW2010128 I15.7 04xxxx VW2*(xxxx-1)5 CRC校验:CRC编码校验误码率极低,是一种比较可靠的检验方式。该校验码是通过数据序列对生成多项式进行二进制除法取余数得到的。采用CRC-16校验,生成的多项式为X16+ X15+ X2+ X1。CRC域是两个字节,包含一16位的二进制值。它由传输设备计算后加入到消息中。接收设备重新计算收到消息的CRC,并与接收到的CRC域中的值比较,如果两值不同,则有误。CRC是先调入一值是全“1”的16位寄存器,然后调用一过程将消息中连续的8位字节各当前寄存器中的值进行处理。CRC产生过程中,每个8位字符都单独和寄存器内容相或(OR),结果向最低有效位方向移动,最高有效位以0填充。LSB被提取出来检测,如果LSB为1,寄存器单独和预置的值或一下,如果LSB为0,则不进行。整个过程要重复8次。在最后一位(第8位)完成后,下一个8位字节又单独和寄存器的当前值相或。最终寄存器中的值,是消息中所有的字节都执行之后的CRC值。下面是它的VC代码:WORD GetCheckCode(const char * pSendBuf, int nEnd)/获得校验码 WORD wCrc = WORD(0xFFFF);for(int i=0; iwCrc = WORD(BYTE(pSendBufi);for(int j=0; jif(wCrc & 1)wCrc = 1; wCrc = 0xA001; elsewCrc = 1; return wCrc;六、上位机与智能仪表的通讯:上位机的通讯程序可参照上位机与PLC的通讯程序进行设计,注意将上位机的串口地址设为其它的地址(例如2)。在此不作过多介绍。多台智能仪表作为MODBUS从站的网络,每个从站必须设为唯一的从站地址,并设定好波特率。仪表要遵循MODBUS规约的通信帧结构对上位机的命令进行解析。非呼叫对象要能及时重新恢复等待接受状态。响应呼叫的仪表要解析命令并进行相应的功能处理,对非法的命令要能回报报错信息。七、 结束语:该方法用于某污水处理厂。由于采用智能仪表使系统对PLC的要求以及布线成本都大大降低。监控程序的设计完全符合厂方的要求。另因其设备分散、成本要求苛刻的特点,充分利用RS485总线和现有成熟而规范的通信协议能最大限度地节约成本。实践表明,MODBUS具有开放性好、功能强、通讯效率高等特点。 来源:机电之家机电行业电子商务平台!西门子s7-200PLC modbus与智能仪表时间:2011-08-04 来源: 作者:电气自动化技术网 点击: 161次-问:西门子S7-200PLC与智能仪表MODBUS通讯,我只想问从站的程序用不用写,如果要写在哪儿写下载到哪儿?S7-200做主站!答:从站不用写,只需要设置通讯的参数,就行PLC和变频器通讯一样欲在S7-200程序中使用Modbus主设备指令,请执行以下步骤:1.在程序中插入MBUS_CTRL指令,并在每次扫描时执行MBUS_CTRL。您可以使用MBUS_CTRL指令初始化或更改Modbus通讯参数。当您插入MBUS_CTRL指令时,会在程序中自动增加几个受保护的子程序和中断例程。2.使用协议库存储器命令,为Modbus主设备协议指令需要的V存储器指定一个起始地址。3.将一条或多条MBUS_MSG指令放入程序中。可以根据需要将尽可能多的MBUS_MSG指令放入程序中,但每次只能激活这些指令中的一条。4.连接S7-200CPU上的端口0(或对端口1协议库是端口1)和Modbus从站之间的通讯电缆。当心带有不同参考电位的互连装置会引起互连电缆中出现意外电流。这些意外电流会引起通讯错误或损坏装置。确保所有用通讯电缆连接的设备共享一个共用电路参考或单独隔离,以防不需要的电流通过。Modbus主设备指令使用如下显示的Modbus功能读取或写入特定的Modbus地址。Modbus从站必须支持所需的Modbus功能才能读取或写入特定的Modbus地址。所需的Modbus从站功能支持Modbus地址读取或写入所需的Modbus从站功能00001?09999离散输出读取功能1写入功能5用于单个输出点功能15用于多个输出点10001?19999离散输出读取功能2写入不能30001?39999输入寄存器读取功能4写入不能40001?49999保持寄存器读取功能3写入功能6用于单个寄存器功能16用于多个寄存器(1)MBUS INIT指令用于使能、初始化或禁止Modbus通信。如图8-12所示。只有当本指令执行无误后,才能执行MBUS SLVE指令。当EN位使能时,在每个周期MBUS INIT都被执行。但在使用时,只有当改变通信参数时,MBUS INIT指令才重新执行,因此EN位的输入端应采用脉冲输入,并且该脉冲的应采用边沿检测的方式产生,或者采取措施使MBUS INIT指令只执行一次。表8-7列出了MBUS_INIT指令各参数的类型及适用的变量。MBUS INITENMode DoneAddr ErrorBandParityMaxIQMaxHoldHoldStart 表8-7 MBUS_INIT指令各参数的类型及适用的变量输入/输出数据类型适用变量Mode,Addr,ParityBYTEVB,IB,QB,MB,SB,SMB,LB,AC,Constant,*AC,*VD,*LDBaud,HoldStartDWOREVD,ID,QD,MD,SD,SMD,LD,AC,Constant,*AC,*VD,*LDDelay,MaxAI,MaxHoldWORDVW,IW,QW,MW,SW,SMW,LW,AC,Constant,*AC,*VD,*LDDoneBOOLI,Q,M,S,SM,T,C,V,LErrorBYTE图8-13 MBUS INIT指令VB,IB,QB,MB,SB,SMB,LB,AC,*AC,*VD,*LD 参数说明:参数Baud用于设置波特率,可选1200、2400、4800、9600、19200、38400、57600、11520。参数Addr用于设置地址,地址范围为:1247。参数Parity用于设置校验方式使之与ModBus主站匹配。其值可为:0(无校验)、1(奇校验)、2(偶校验)。参数MaxIQ用于设置最大可访问的I/O点数。(2)MBUS_SLAVE指令MBUS_SLAVE指令用于响应ModBus主站发出的请求。该指令应该在每个扫描周期都被执行,以检查是否有主站的请求。其梯形图指令如图8-14所示。只有当指令的EN位输入有效时,该指令在每个扫描周期才被执行。 当响应ModBus主站的请求时,Done位有效,否则Done处于无效状态。位Error显示指令执行的结果。Done有效时Error才有效,但Done由有效变为无效时,Error状态并不发生改变。表8-8列出了MBUS_SLAVE指令各参数的类型及适用的变量。表8- MBUS SLVEEN Done Error8 MBUS_SLAVE指令各参数的类型及适用的变量参数数据类型操作数DoneBOOLI,Q,M,S,SM,T,C,V,LErrorBYTEVB,IB,QB,MB,SB,SMB,LB,AC,*AC,*VD,*LDs7200 modbus与智能仪表 S7200与智能仪表M
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 福建省龙岩市漳平市2024-2025学年三年级下学期6月期末语文试题
- 离别的散文诗歌鉴赏课件
- Diethylamino-hydroxybenzoyl-hexyl-benzoate-d4-生命科学试剂-MCE
- 2-Hydroxy-3-methyllauroyl-CoA-2-Hydroxy-3-methyllauroyl-coenzyme-A-生命科学试剂-MCE
- DB61T 508.1~6-2011 富硒双低油菜标准综合体
- DB61T 217-2014 猕猴桃 苗木技术规程
- 牛栏山一中2025-2026学年数学高三上期末考试模拟试题
- 天津市静海一中2025年数学高三上期末达标测试试题
- 上海市上海师范大学附属第二外国语学校2025-2026学年数学高三上期末学业水平测试模拟试题
- 禁毒知识培训会课件
- 2025年全国新高考I卷高考全国一卷真题英语试卷(真题+答案)
- (干货)虚拟股权激励方案设计及协议
- YC/T 593-2023打叶复烤加工服务能力评价办法
- 医美员工制度管理制度
- 大棚搭建用工合同范本
- T/CGAS 026.2-2023瓶装液化石油气管理规范第2部分:平台建设
- T/CCS 059-2023智能化煤矿运维技术架构与流程
- T/CAQI 96-2019产品质量鉴定程序规范总则
- 2025至2030年中国窗户胶行业投资前景及策略咨询研究报告
- 《高中化学知识竞赛》课件
- 2025人教部编版语文四年级上册教学计划(含进度表)
评论
0/150
提交评论