浔之漫智控技术(上海)有限公司
主营产品: 西门子低压中国授权代理商,SIEMENS西门子授权代理商,PLC模块、CPU模块、DP通讯电缆、6GK交换机、低压电器授权总代理商、代理商中国授权一级总代理商
西门子PLC模块控制器山东代理商
发布时间:2024-11-12

西门子PLC模块控制器山东代理商

上海浔之漫智控技术公司在经营活动中精益求精,具备如下业务优势:

SIEMENS可编程控制器

长期低价销售西门子PLC,200,300,400,1200,西门子PLC附件,西门子电机,西门子人机界面,西门子变频器,西门子数控伺服,西门子总线电缆现货供应,欢迎来电咨询系列产品,折扣低,货期准时,并且备有大量库存.长期有效   

欢迎您前来询价.100分的服务.100分的质量.100分的售后.100分的发货速度    

您的选择您的支持是我的动力! ————致我亲爱的客户!

价格波动,请来电咨询 

.6 Modbus RTU 从站常见问题

Modbus 从站的网络地址与 S7-200 的 CPU 网络地址有什么关系?

 

没有关系。支持网络通信的通信协议必须有其自己的网络寻址规定。 Modbus 从站的地址只是它在 Modbus 网络上的地址,而通常所说的 S7-200 CPU 地址是 CPU 在西门子的 PPI 网络上的站地址。S7-200 CPU 的大部分通信功能都通过 PPI 网络完成,例如编程、网络读写通信等。

 

 如何理解 Modbus 地址与功能码的区别?

 

Modbus 地址与 Modbus 的功能码是两个层次的概念。

 

根据 Modbus 通信协议,Modbus 数据的地址使用 00xxx、10xxx、30xxx 和 40xxx 的形式,分别表示数字量输出、数字量输入、模拟量输入等数据地址。在使用 S7-200 的指令库时,Modbus 数据地址与 S7-200 的 I/O 和数据存储区地址间有特定的对应关系。

 

有些设备表明它支持 Modbus RTU 通信协议,但也详细提供了读写数据的详细通信帧格式,其中包括如何 Modbus 站的地址,需要读写数据类型、长度等等。数据帧有特定字节指出此指令读写的数据类型和地址,此字节的数据内容即所谓"功能码",如功能 1 读取单个/多个数字量输出点的值。

 

支持 Modbus 协议的设备或软件,使用时用户直接设置或看到的应当是 Modbus 数据地址。Modbus 地址所访问的数据,是通过各种"功能"读写而来。功能码是 Modbus 地址的底层。如果 Modbus 通信的一方提供的所谓 Modbus 协议只有功能码,则需要注意了解此功能号与 Modbus 地址间的对应关系。

Modbus 指令库启动后,如何通过同一个通信端口进行 CPU 监控?

 

Modbus 指令库使用的是 CPU 的自由口通信功能,工作在自由口模式下的通讯口不能使用 Micro/WIN 的 PPI 编程通信监控。如果通信口都已经被占用,可以考虑:

 

加一个通信模块(如 EM 277、CP 243-1、EM 241 等)扩展出一个编程通信口

中止自由口模式,可以将 CPU 上的模式开关从 RUN 拨到 STOP;或者保持处于 RUN 状态,用程序停止指令库的 Modbus 模式(参见指令库应用)

为何有些 HMI 软件使用 Modbus RTU 读取S7-200中的实数会出现错误?

 

有些HMI软件使用Modbus RTU通信协议时,处理存储在数据保持寄存器中的实数(浮点数)的方式与西门子的实数保存格式不同。西门子的PLC遵循"高字节低地址、低字节高地址"的规律。

 

Modbus RTU的保持寄存器总是以"字(双字节)"为单位,而一个实数需要4个字节(双字)表示。HMI软件在处理时可能会把保持寄存器的两个"字"互换位置,造成不能识别以西门子格式表示的实数。如果HMI软件一方无法处理这种实数,则可在S7-200 CPU中编程将存入数据缓冲区(保持寄存器区)的实数的高字和低字互换。

为何有的HMI软件用Modbus RTU可以读取作为从站的S7-200的内容,但不能写入?

 

可能此软件使用了Modbus功能15(写多个离散量)或类似功能(功能 16)。S7-200从站协议遵守"以整字节地址边界(如Q0.0、Q2.0)开始、以8的整数倍为位个数"的规约。如果HMI软件未严格执行此规律就可能发生写入错误的情况。

 

S7-200是否支持 Modbus ASCII 模式?

 

S7-200可以支持上述模式,但是没有现成的指令库,需要用户自己编程。

 

项目编译后为何出现很多错误?

 

使用指令库时,若编译后出现很多错误,一般是因为未库指令数据存储区。请参考相关条目。

 

S7-200 CPU的Port1是否可以支持Modbus RTU协议?

 

可以。用户可以自己编程实现。

 

在S7-200的"Tips and Tricks"帮助文档中,Tip041是Modbus RTU从站程序,用户可以参考。

 

S7-200是否可以组成Modbus RTU通信网络?如何组网?

 

S7-200可以组成RS-485基础上的Modbus RTU网络。如果通信对象是不同标准的通信口,可能还需要转换。
参见:RS-485网络组成

 

3STEP 7-Micro/WIN 的标准指令库

STEP 7-Micro/WIN V4.0 以上版内部已经带有新的指令库,但在未安装西门子 Instruction Library 软件包的情况下,不能显示出来使用。

 

要使用西门子的标准指令库,必须先安装西门子的指令库软件包 Instruction Library。安装了 Instruction Library 之后,只要安装的 STEP 7-Micro/WIN 版本是的,就能获得相应版本的新指令库。安装 Micro/WIN 的升级包(Service Pack)也会更新指令库的版本。

 

用户可以直接从下面获得西门子 Instruction Library 软件安装包:

Instruction Library

的 STEP 7-Micro/WIN V4.0 SP5 版本支持以下几种西门子标准指令库:

USS通信协议库:
可使CPU通信口 Port0 和 Port 1 支持与Micro-Master 3(MM3系列)和Micro-Master 4(MM4系列,如MM420、MM430、MM440等)、SINAMICS G110系列的USS通信控制,通过一些预先编好的子程序和中断程序,以方便地控制变频器的运行和读写其参数。
Micro/WIN V4.0的USS指令库现在已经针对西门子的Master Drive做了优化。

Modbus RTU Slave(从站)通信协议库:
可使CPU通信口 Port0 支持Modbus RTU从站通信功能。

Modbus RTU Master (主站)通信协议库: 
可使 CPU 通信口 Port 0 和 Port 1 支持 Modbus RTU 主站通信功能。

以上通信协议库都是使用了S7-200 CPU的自由口通信功能。

 

 

图1. 西门子标准库以浅蓝色图标表示(Micro/WIN V4.0 SP5)

从以下两种途径可以获得STEP 7-Micro/WIN指令库:

 

安装STEP 7-Micro/WIN32 附加软件包Instruction Library V1.1,订货号6ES7830-2BC00-0YX0。

已安装STEP 7-Micro/WIN32 V3.1和Toolbox V1.0(包括为TP070配置的TP Designer和老的指令库,订货号6ES7810-2TC00-0YX0),再安装正式的STEP 7-Micro/WIN32 V3.2(或V4.0)版,也可自动获得新的指令库。新旧版本的软件及其指令库可以在一台计算机上共存(V4.0 的各升级包不能共存)。

 

注意:

所有旧的CPU21x不能使用新的指令库

旧版本的指令库不能与新的指令库在同一个项目文件中共存

安装了新版本的指令库后,旧版本的指令库不再能够看到

用户自定义的指令库不能与西门子的库重名

有时因为系统和软件安装有问题,可能在安装完西门子标准指令库后仍然不能看到西门子标准库。这时可以尝试添加标准库。标准库的文件存在Micro/WIN安装目录下的Standard Libs目录下。

3.1 分配库指令数据区

调用STEP 7 - Mciro/WIN32 V3.2 Instruction Library(指令库)需要分配库指令数据区(Library Memory)。库指令数据区是相应库的子程序和中断程序所要用到的变量存储空间。

 

如果在编程时不分配库指令数据区,编译时会产生许多相同的错误(错误18)。

 

操作步骤(以Modbus RTU库指令为例):

 

在指令树的Project(项目)中,以鼠标右键单击Program Block(程序块),在弹出的快捷菜单中选择Library Memory。如图2所示:

图2

在弹出的选项卡中设置库指令数据区,如图2所示:

图3.缺省情况下是从VB0开始,但因为与Modbus的保持寄存区冲突,所以手动改为VB2000。按"Suggest Address"按钮也可以自动分配。

可以使用Suggest Address(*地址)设置数据区,但要注意编程软件设置的数据区地址,只考虑到了其他一般寻址,而未考虑到诸如Modbus数据保持寄存器区等的设置。应当确保不与其他任何已使用的数据区重叠、冲突。不应重复按Suggest Address按钮,否则也会造成混乱。

在STEP 7-Micro/WIN32 V3.1中,有分配库指令数据区时有不同的操作方法,需要在Symbol Table(符号表)中设置一个首地址。我们强烈建议使用当时的编程版本。

西门子PLC模块控制器山东代理商

展开全文
拨打电话 微信咨询 发送询价