版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、实用标准文案CPU 上的通信口( Port0 )支持 Modbus RTU 从站通信协议S7-200 CPU 上的通信口 Port0 可以支持 Modbus RTU 协议,成为 Modbus RTU 从站。此功能是通过 s7-200plc 的自由口通信模式实现, 因此可以通过无线数据电台等慢速通 信设备传输。详情请参考 S7-200 系统手册之相关章节。要实现 Modbus RTU 通信,需要 STEP 7-Micro/WIN32 V3.2 以上版本的编程软件,而 且须安装 STEP 7-Micro/WIN32 V3.2 Instruction Library(指令库)。Modbus RTU
2、功能是通过指令库中预先编好的程序功能块实现的。Modbus RTU 从站指令库只支持 CPU 上的通信 0 口( Port0 )。参考: Modbus RTU 主站指令库文档大全实用标准文案基本步骤:1. 检查 Micro/WIN 的软件版本,应当是 STEP 7-Micro/WIN V3.2 以上版本。2. 检查 Micro/WIN 的指令树中是否存在 Modbus RTU 从站指令库(图 1),库中 应当包括 MBUS_INIT 和 MBUS_SLAVE 两个子程序。如果没有,须安装 Micro/WIN32 V3.2 的 Instruction Library (指令库)软件包;图 1.
3、指令树中的库指令3. 西门子编程 时使用 SM0.1 调用子程序 MBUS_INIT 进行初始化, 使用 SM0.0 调 用 MBUS_SLAVE ,并指定相应参数。关于参数的详细说明,可在子程序的局部变量表中找到;调用 Modbus RTU 通信指令库图中参数意义如下:a. 模式选择:启动 /停止 Modbus ,1= 启动; 0=停止b. 从站地址: Modbus 从站地址,取值 1247文档大全实用标准文案c. 波特率:可选 1200 ,2400 ,4800 ,9600 ,19200 ,38400 ,57600 ,115200d. 奇偶校验: 0= 无校验; 1= 奇校验; 2=偶校验e
4、. 延时:附加字符间延时,缺省值为 0f. 最大 I/Q 位:参与通信的最大 I/O 点数,S7-200 的 I/O 映像区为 128/128 , 缺省值为 128g. 最大 AI 字数:参与通信的最大 AI 通道数,可为 16 或 32h. 最大保持寄存器区:参与通信的 V 存储区字( VW )i. 保持寄存器区起始地址:以 &VBx 指定(间接寻址方式)j. 初始化完成标志:成功初始化后置 1k. 初始化错误代码l. Modbus 执行:通信中时置 1,无 Modbus 通信活动时为 0 。m. 错误代码: 0= 无错误4. 在 CPU 的 V 数据区中分配库指令数据区( Library
5、Memory );5. 如有必要,使用主站软件测试。注意:由子程序参数 HoldStart 和 MaxHold 指定的保持寄存器区,是在 S7-200 CPU 的 V 数据存储区中分配, 此数据区不能和库指令数据区有任何重叠,否则在运行时会产生错误,不能正常通信。注意 Modbus 中的保持寄存器区按 “字”寻址,即 MaxHold 规定的是 VW 而不是 VB 的 个数。在图 2 的例子中,规定了 Modbus 保持寄存器区从 VB0 开始( HoldStart VB0 ),文档大全实用标准文案并且保持寄存器为 1000 个字( MaxHold 1000 ),因保持寄存器以字(两个字节)为单
6、位,实际上这个通信缓冲区占用了VB0 VB1999共 2000 个字节。因此分配库指令保留数据区时至少要从 VB2000 开始。当然保持区不一定要从 VB0 开 始。注意:你选用的 CPU 的 V存储区大小! CPU 型号不同 V数据存储区大小不同。应根 据需要选择 Modbus 保持寄存器区域的大小。包含 Modbus RTU 从站指令库的 西门子 plc 项目 编译、下载到 CPU 中后,在编程计 算机( PG/PC )上运行一些 Modbus测试软件可以检验 S7-200 的 Modbus RTU 通信是否正常,这对查找故障点很有用。测试软件通过计算机串口 (RS-232 )和 PC/P
7、PI 电缆连接 CPU 。如果必要,须将 PC/PPI 电缆设置在自由口通信方式。可到一些软件下载网站寻找类似软件,如 ModScan32 等。Modbus RTU 从站地址与 S7-200 的地址对应Modbus 地址总是以 00001 、 30004 之类的形式出现。 西门子 S7-200 内部的数据存储 区与 Modbus 的 0 、1、3、4 共 4 类地址的对应关系如下:表 1. Modbus 地址对应表Modbus 地址S7-200 数据区00001 00128Q0.0 Q15.710001 10128I0.0 I15.730001 30032AIW0 AIW62文档大全实用标准文
8、案40001 4xxxxT T + 2 * (xxxx -1)其中 T 为 S7-200 中的缓冲区起始地址,即 HoldStart如果已知 S7-200 中的 V 存储区地址,推算 Modbus 地址的公式如下:Modbus 地址 = 40000 + (T/2+1) ; T 为偶数Modbus RTU 从站指令库支持的 Modbus 功能码Modbus RTU 从站指令库支持特定的 Modbus 功能。 访问使用此指令库的主站必须遵 循这个指令库的要求。表 2. Modbus RTU 从站功能码功能码主站使用相应功能码作用于此从站的效用1读取单个 /多个线圈(离散量输出点)状态。 功能 1
9、返回任意个数输出点( Q )的 ON/OFF 状态。2读取单个 /多个触点(离散量输入点)状态。 功能 2 返回任意个数输入点( I)的 ON/OFF 状态。3读取单个 /多个保持寄存器。功能 3 返回 V 存储区的内容。在 Modbus 协议下保 持寄存器都是 “字”值,在一次请求中可以读取最多 120 个字的数据。4读取单个 /多个输入寄存器。功能 4 返回 S7-200 的模拟量数据值。5写单个线圈 (离散量输出点) 。功能 5 用于将离散量输出点设置为指定的值。这个 点不是被强制的,用户程序可以覆盖 Modbus 通信请求写入的值。6写单个保持寄存器。功能 6 写一个值到 S7-200
10、 的 V 存储区的保持寄存器中。15写多个线圈(离散量输出点)。功能 15 把多个离散量输出点的值写到 S7-200 的 输出映像寄存器 (Q 区)。输出点的地址必须以字节边界起始 (如 Q0.0 或 Q2.0 ), 并且输出点的数目必须是 8 的整数倍。这是此 Modbus RTU 从站指令库的限制。文档大全实用标准文案些点不是被强制的,用户程序可以覆盖 Modbus 通信请求写入的值。 些多个保持寄存器。功能 16 写多个值到 S7-200 的 V 存储区的保持寄存器中 在一次请求中可以写最多 120 个字的数据。常问问题1. Modbus 从站的网络地址与 S7-200 的 CPU 网络
11、地址有什么关系? 没有关系。支持网络通信的通信协议必须有其自己的网络寻址规定。 Modbus 从站的 地址只是它在 Modbus 网络上的地址,而通常所说的 S7-200 CPU 地址是 CPU 在西门子的 PPI 网络上的站地址。S7-200 CPU 的大部分通信功能都通过 PPI 网络完成,例如编程、网络读写通信等。2. 如何理解 Modbus 地址与功能码的区别?Modbus 地址与 Modbus 的功能码是两个层次的概念。根据 Modbus 通信协议, Modbus 数据的地址使用 00xxx 、10xxx 、30xxx 和 40xxx 的 形式,分别表示数字量输出、 数字量输入、 模
12、拟量输入等数据地址。 在使用 S7-200 的指令库 时,Modbus 数据地址与 西门子 S7-200 的 I/O 和数据存储区地址间有特定的对应关系。有些设备表明它支持 Modbus RTU 通信协议,但也详细提供了读写数据的详细通信帧 格式,其中包括如何指定 Modbus 站的地址,需要读写数据类型、长度等等。数据帧有特定 字节指出此指令读写的数据类型和地址,此字节的数据内容即所谓 “功能码 ”,如功能 1 指定读取单个 /多个数字量输出点的值。文档大全实用标准文案支持 Modbus 协议的设备或软件, 使用时用户直接设置或看到的应当是 Modbus 数据 地址。Modbus 地址所访问
13、的数据,是通过各种 “功能 ”读写而来。功能码是 Modbus 地址的 底层。如果 Modbus 通信的一方提供的所谓 Modbus 协议只有功能码, 则需要注意了解此功 能号与 Modbus 地址间的对应关系。3. Modbus 指令库启动后,如何通过同一个通信端口进行 CPU 监控?Modbus 指令库使用的是 CPU 的自由口通信功能, 工作在自由口模式下的通讯口不能 使用 Micro/WIN 的 PPI 编程通信监控。如果通信口都已经被占用,可以考虑:加一个通信模块(如 EM 277、CP 243-1 、EM 241 等)扩展出一个 西门子编 程通信口中止自由口模式,可以将 CPU 上
14、的模式开关从 RUN 拨到 STOP ;或者保持 处于 RUN 状态,用 PLC 程序 停止指令库的 Modbus 模式(参见指令库应用)4. 为何有些 HMI 软件使用 Modbus RTU 读取西门子 S7-200 中的实数会出现错误?有些 HMI 软件使用 Modbus RTU 通信协议时, 处理存储在数据保持寄存器中的实数 (浮 点数)的方式与西门子的实数保存格式不同。西门子的 PLC 遵循 “高字节低地址、低字节高地址 ”的规律。Modbus RTU 的保持寄存器总是以 “字(双字节) ”为单位,而一个实数需要 4 个字节(双 字)表示。HMI 软件在处理时可能会把保持寄存器的两个
15、“字”互换位置,造成不能识别以西门子格 式表示的实数。文档大全实用标准文案如果 HMI 软件一方无法处理这种实数,则可在 S7-200 CPU 中编程将存入数据缓冲区 (保持寄存器区)的实数的高字和低字互换。5. 为何有的 HMI 软件用 Modbus RTU 可以读取作为从站的 S7-200 的内容, 但不能写 入?可能此软件使用了 Modbus 功能 15 (写多个离散量)或类似功能(功能16 )。S7-200 从站协议遵守 “以整字节地址边界(如 Q0.0 、Q2.0 )开始、以 8 的整数倍为位 个数 ”的规约。如果 HMI 软件未严格执行此规律就可能发生写入错误的情况。6.S7-200 是否支持 Modbus ASCII 模式?S7-200 可以支持上述模式,但是没有现成的指令库,需要用户自己编程。7. 项目编译后为何出现很多错误?使用指令库时,若编译后出现很多错误,一般是因为未指定库指令数据存储区。请参考 相关条目。8.S7
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 商业数据分析报告撰写规范
- 2026年余热制冷制热技术项目可行性研究报告
- 2026年居家适老化与智能化改造项目公司成立分析报告
- 2026年云计算 医疗影像云存储项目公司成立分析报告
- 2026年食品药品检验技术专业模拟题集含答案
- 2026年国际金融风险管理专业认证考试模拟卷
- 2026年专业工程师岗位晋升理论与应用知识试题集
- 2026年人工智能在智能家居系统中的调度算法考试题
- 2026年环境科学基础知识与实践技能试题
- 2026年土木工程师基础专业能力测试题
- 初中地理七年级《世界气候》单元复习课教学设计
- 厨师基础知识培训课件
- 广告法培训教学课件
- 2025年度病案管理科主治医师工作总结及2026年工作规划
- 肾宝胶囊产品课件
- Unit 1 Time to Relax Section B(1a-2c)教学课件 人教新教材2024版八年级英语下册
- GB/T 3098.5-2025紧固件机械性能第5部分:自攻螺钉
- 2026年陕西单招基础薄弱生专用模拟卷含答案基础题占比80%
- 2025年印刷及包装行业智能化改造项目可行性研究报告
- 命造收录200例(二)
- 颅内钙化CT、MRI诊断、鉴别诊断
评论
0/150
提交评论