西门子华北地区代理商

发布
浔之漫智控技术(上海)有限公司
电话
18717946324
手机
18717946324
发布时间
2023-12-28 16:32:47
产品详情

西门子华北地区代理商      西门子华北地区代理商

全新原装,,价格优势!浔之漫智控技术(上海)有限公司:西门子授权代理商

现货库存;大量全新库存,款到48小时发货,无须漫长货期

西门子PLC(S7-200、S7-200 SMART、S7-300、S7-400、S7-1200、S7-1500、ET200S、ET200M、ET200SP)、触摸屏、变频器、工控机、电线电缆、仪器仪表等,产品选型、询价、采购,敬请联系,浔之漫智控技术(上海)有限公司 

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

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

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

如何访问大于 9999 的保持寄存器地址?

通常 Modbus 协议的保持寄存器地址范围在 之间。对于多数应用来说已经够了。但有些 Modbus 从站把地址映射到保持寄存器区的地址超过 9999 的部分。

Modbus Master 协议库支持超过 9999 的保持寄存器地址。地址范围为 36。只需在调用 MBUS_MSG 子程序时给 Addr 参数赋相应的值即可,如 416768。

Modubs Master 扩展地址模式仅支持保持寄存器区,不支持其他地址类型。

S7-200 作为 Modbus 主站方接收上来的数据格式与第三方设备不一样怎么办?

西门子PLC数据的存储格式为高位低存方式。举例:VD200中包含VW200和VW202,其中VW202是低字,VW200是高字。若第三方设备与西门子数据存储格式不同,是低位低存的方式,那么通信上来的数据就会存在错误,需要进行转换才能使用。编程的方式比较多样,针对双字中高低字的交换可以使用SWAP(字交换)指令,若是字节交换可以考虑循环移位指令。

S7-200 是否支持如 Modbus TCP 等其它协议?

不支持。S7-200自身的通信端口或其通信扩展模块均不支持 Modbus TCP,CANopen,DeviceNet 以及 BACnet 通信协议。

为什么 S7-200 作 Modbus 主站时 MBUS_MSG 指令报6号错误?

引起6号错误主要有两方面的原因:1.多个 MBUS_MSG 指令同时使能执行;2. Modbus库存储区中分配的建议地址区与编程中已使用的V存储区有重叠。

2Modbus RTU从站

2.1 CPU 上的通信口(Port0)支持 Modbus RTU 从站通信协议

S7-200 CPU上的通信口Port0可以支持Modbus RTU协议,成为Modbus RTU从站。此功能是通过S7-200的自由口通信模式实现,因此可以通过无线数据电台等慢速通信设备传输。

详情请参考《S7-200系统手册》之相关章节。

要实现Modbus RTU通信,需要STEP 7-Micro/WIN32 V3.2以上版本的编程软件,而且须安装STEP 7-Micro/WIN32 V3.2 Instruction Library(指令库)。Modbus RTU功能是通过指令库中预先编好的程序功能块实现的。供应西门子CPU224CN模块6ES7214-1BD23-0XB8

Modbus RTU从站指令库只支持CPU上的通信0口(Port0)。

2.2 编程基本步骤:

检查Micro/WIN的软件版本,应当是STEP 7-Micro/WIN V3.2以上版本。

检查Micro/WIN的指令树中是否存在Modbus RTU从站指令库(图1),库中应当包括MBUS_INIT和MBUS_SLAVE两个子程序。如果没有,须安装Micro/WIN32 V3.2的Instruction Library(指令库)软件包;

图1. 指令树中的库指令

编程时使用SM0.1调用子程序MBUS_INIT进行初始化,使用SM0.0调用MBUS_SLAVE,并***相应参数。关于参数的详细说明,可在子程序的局部变量表中找到;

图2. 调用Modbus RTU通信指令库

图中参数意义如下:

模式选择:启动/停止Modbus,1=启动;0=停止

从站地址:Modbus从站地址,取值1~247

波特率:可选,9600,,115200

奇偶校验:0=无校验;1=奇校验;2=偶校验

延时:附加字符间延时,缺省值为0

较大I/Q位:参与通信的较大I/O点数,S7-200的I/O映像区为128/128,缺省值为128

较大AI字数:参与通信的较大AI通道数,可为16或32

较大保持寄存器区:参与通信的V存储区字(VW)

保持寄存器区起始地址:以&VBx***(间接寻址方式)

初始化完成标志:成功初始化后置1

初始化错误代码

Modbus执行:通信中时置1,无 Modbus 通信活动时为 0。

错误代码:0=无错误

表 1. 从站错误代码

错误代码描述
0无错误
1存储区范围错误
2非法波特率或校验
3非法从站地址
4Modbus 参数的非法值
5保持寄存器与Modbus从站符号地址重复
6接收校验错误
7接收CRC错误
8非法功能请求/不支持的功能
9请求中有非法存储区地址
10从站功能未使能

在CPU的V数据区中分配库指令数据区(Library Memory);

如有必要,使用主站软件测试。

供应西门子CPU224CN模块6ES7214-1BD23-0XB8

注意:由子程序参数HoldStart和MaxHold***的保持寄存器区,是在S7-200 CPU的V数据存储区中分配,此数据区不能和库指令数据区有任何重叠,否则在运行时会产生错误,不能正常通信。注意Modbus 中的保持寄存器区按"字"寻址,即MaxHold规定的是VW而不是VB的个数。

在图2的例子中,规定了 Modbus 保持寄存器区从 VB0 开始(HoldStart = VB0),并且保持寄存器为1000个字(MaxHold=1000),因保持寄存器以字(两个字节)为单位,实际上这个通信缓冲区占用了VB0~VB1999共2000个字节。因此分配库指令保留数据区时至少要从VB2000开始。当然保持区不一定要从VB0开始。

注意:你选用的CPU的V存储区大小!CPU型号不同V数据存储区大小不同。应根据需要选择Modbus保持寄存器区域的大小。

包含 Modbus RTU 从站指令库的项目编译,下载到CPU中后,在编程计算机(PG/PC)上运行一些 Modbus 测试软件可以检验S7-200的Modbus RTU通信是否正常,这对查找故障点很有用。测试软件通过计算机串口(RS-232)和PC/PPI电缆连接CPU。如果必要,须将PC/PPI电缆设置在自由口通信方式。

可到一些软件下载网站寻找类似软件,如 ModScan32 等。

2.3 Modbus RTU 从站地址与S7-200的地址对应

Modbus地址总是以00001,30004之类的形式出现。S7-200内部的数据存储区与Modbus的0,1,3,4共4类地址的对应关系如下:


浔之漫智控技术(上海)有限公司

联系人:
占雪芬(女士)
电话:
18717946324
手机:
18717946324
地址:
上海市松江区石湖荡镇塔汇路755弄29号1幢一层A区213
邮件:
353336193@qq.com
行业
工控系统及装备 石家庄工控系统及装备
浏览统计
2次
我们的其他产品
拨打电话 请卖家联系我