BCNet-S7PPI
用户指南
版本:CN02
无锡市北辰自动化技术有限公司
无锡北辰 BCNet-S7PPI 用户使用指南 CN02
2
第一章 硬件说明和安装
一.硬件接口
BCNet-S7PPI 共有四个接口:DSub9 通讯公口 X1、DSub9 通讯母口 X2、RJ45 通讯口 X3
和外部电源端子 X4。各接口功能描述:
1. DSub9 通讯公口 X1:S7 总线通讯口,可直接插入 S7-200PLC 的编程口。通讯口的
针脚定义与 S7-200PLC 一致,其中 3 脚为 RS485 的 B 线,8 脚为 RS485 的 A 线,5 脚为逻辑
地。7 脚为 PLC 的 24VDC 电源正,2 脚为 24VDC 电源地。2/7 脚的 24VDC 电源作为 BCNet-S7PPI
的默认供电输入。
2.DSub9 通讯母口 X2:连接触摸屏等设备。
3.RJ45 通讯口 X3:以太网通讯电缆插口,遵循以太网接线标准。其中 1 脚为 TX+,2
脚为 TX-,3 脚为 RX+,6 脚为 RX-。
4.外部供电接线端子 X4:BCNet-S7PPI 可选的外部 24VDC 供电输入。靠近 RJ45 接口的
端子为 24VDC 正输入。当 BCNet-S7PPI 连接到非 PLC 编程口时需要外部电源供电。
注意:
1. 不可以同时通过 PLC 编程口和外部电源端子 X4 对 BCNet-S7PPI 供电!长时间接通
可能会损坏 PLC 编程口。在确认使用外部供电前请保证当前 BCNet-S7PPI 所连接的 S7 总线通
讯口的 2/7 脚上无 24VDC 电源输出。
2. DSub9 通讯母口 X2 可以连接西门子触摸屏和非西门子触摸屏,请在订货时告知!
二.LED 指示灯
BCNet-S7PPI 前面板有两个系统指示灯,红色为电源指示灯(Pwr 灯),绿色为 S7 总线
指示灯(Bus 灯)。系统指示灯功能描述:
1. Pwr:红色 LED,BCNet-S7PPI 系统供电指示灯。当系统供电正常,Pwr 灯应常亮。
2. Bus:绿色 LED,S7 总线状态指示灯。可能的状态如下:
操作 Bus 灯状态 意义 故障解决
系统上电 数秒后为常亮 自动波特率完成,至少有一个
S7-200PLC 被检测到。
系统正常,无故障。
1Hz 闪烁 检测到具有相同站地址的 S7
主站。
重新设定 BCNet-S7PPI 的站地
址。
间隙性闪烁两
次
自动波特率失败,系统没有检
测到 S7 总线。
确 认 BCNet-S7PPI 连 接 到
S7-200PLC,或者检查 S7-200PLC
通讯口是否损坏。
长时间熄灭 系统启动故障。 送修。
数据通讯 闪烁 闪烁代表完成一次 S7 总线数
据通讯
通讯正常,无故障。
RJ45 接口自带的指示灯:绿色为 LINK 指示灯,当以太网建立连接后该灯常亮。黄色为
Active 指示灯,当产生数据通讯时该灯闪烁。
三.安装方法
BCNet-S7PPI 直接安装于 S7-200PLC 的编程口,或者带有编程口的西门子 Profibus 网络插
头上。如果 S7-200PLC 的通讯口已经连接了触摸屏等其他总线设备,则可以先拆下其通讯电
缆,在安装 BCNet-S7PPI 后再将通讯电缆插入到 BCNet-S7PPI 的扩展通讯口上。
无锡北辰 BCNet-S7PPI 用户使用指南 CN02
3
第二章 查找设备和设置参数
一.修改 IP 地址
BCNet-S7PPI 在出厂时的预置 IP 地址为 192.168.1.188。如果您的计算机不在 192.168.1
网段(譬如在 192.168.0 网段),首先需要将计算机 IP 地址手动设置为 192.168.1.x。然后用
网线直接连接到 BCNet-S7PPI。打开 IE 浏览器,在地址栏输入:192.168.1.188 按回车,如果
IP 正确,则会显示 BCNet-S7PPI 的 Web 配置网页。切换到[以太网接口参数]页面,更改成您
希望的 IP 地址(如果您希望在公司局域网内使用,则应设置成公司局域网 IP),并点击[确
认]按钮。
二.查找设备
如果忘记了 BCNet-S7PPI 的 IP 地址,可以通过以下方法来找到它:
1. 运行 BCNetPro 软件,搜索设备。
2. 通过 UPnP 自动发现设备:打开计算机控制面板,运行“添加或删除程序”,选择
“添加/删除 Windows 组件”,选择“网络服务”,点击“详细信息”,选择“UPnP 用户界面”,
点击“确定”按钮进行安装。安装完毕重启计算机。然后打开“网上邻居”,按“F5”键刷
新,你可以在网上邻居看到 BCNet-S7PPI 设备。
三.设置参数
可以通过 BCNet-S7PPI 的 Web 配置页面或者 BCNetPro 软件来设置参数。Web 页面用于
设置一些基本参数,其他参数(如 BCNetS7-DX 功能、关闭 Web 页面等)需要用 BCNetPro
软件来设置。除非需要明确指定,通常情况下不要随意修改设备参数。
基本参数:
1.BCNet 站地址:这是 BCNet-S7PPI 的自身站地址,不是 PLC 的地址。在 S7 总线上应
该唯一,通常设置为 0 或者 1,不应该设置为 2(2 是 PLC 的默认地址)。
2.S7 总线最高站地址:默认为 31。数值影响 S7 总线站点查询范围,不建议修改。
3.站点通讯重试次数:默认为 3。不建议修改。
4.地址间隔刷新系数:默认为 10。数值影响 S7 总线站点查询频率,不建议修改。
5.MicroWIN 编程 PLC 地址:指定 MicroWIN 软件编程的目标 PLC 地址。BCNet-S7PPI
如果连接到由多个 S7-200PLC 组成的 S7 总线上,则可以对多个 PLC 进行编程。
6.以太网 IP 地址、掩码和网关:根据当前网络设置这些参数。
关闭 Web 和 UPnP:
如果BCNet-S7PPI位于局域网中,暴露Web配置页面可能带来安全性问题。运行BCNetPro
软件,将 Web 页面和 UPnP 功能禁止以防止局域网终端随意更改参数。
四.S7 总线状态
在 Web 首页有 S7 总线状态信息:
1. S7 总线状态:显示“运行”表示系统正常;显示“错误”表示系统出错。
2. 自动波特率:BCNet-S7PPI 在系统上电时会进行波特率检测,显示“完成”表示波
特率检测正确;显示“失败”表示波特率没有被正确检测到。
3. 当前波特率:显示当前检测到的 S7 总线波特率。
如果 BCNet-S7PPI 被正确连接到了一个 S7 总线,则以上信息应该为“运行”“完成”和
实际波特率。如果显示“错误”“失败”则需要进一步检查原因。
无锡北辰 BCNet-S7PPI 用户使用指南 CN02
4
第三章 MicroWIN、PC Access 通讯
一.设置 PG/PC 接口
BCNet-S7PPI 可以通过以太网对 S7-200PLC 进行编程。打开西门子 MicroWIN 软件,在左
侧导航栏点击[设置 PG/PC 接口],在“为使用的接口分配参数”中选择“TCP/IP->(计算机
网卡)”,然后点击[确定]按钮。
注意:MicroWIN 需要 V4.0+SP6 以上版本。
二.通讯参数
点击 MicroWIN 的左侧导航栏的[通讯]按钮,在打开的“通讯”对话框中点击远程 IP 地
址栏右面的按钮,在弹出的“IP 地址浏览器”中输入 BCNet-S7PPI 的 IP 地址并保存退出。“双
击刷新”查找 PLC。
如果找不到 PLC(显示“不存在”),则可能的原因有:
1. 参数[MicroWIN 编程 PLC 地址]不正确:打开 BCNet-S7PPI 的 Web 配置页面,查看首
页的“S7-200 地址表”中的 PLC 地址和 S7 总线状态信息。
2. PLC 的通讯口有可能被设置为自由口通讯:将 PLC 编程开关切换到 STOP 状态,重
新对 BCNet-S7PPI 上电。
如果找到 PLC 则可以选择 PLC 并按[确定]按钮,接下来就可以进行程序上下载和数据监
控了。
三.Internet 远程编程
BCNet-S7PPI 支持 Internet 远程编程和监控。步骤如下:
1. 打开 BCNet-S7PPI 所在局域网的路由器 Web 配置页面,如路由器 IP 为 192.168.1.1,
则在 IE 浏览器地址栏输入 192.168.1.1 后回车,通常的登录名和口令为 admin(如果不正确
请咨询网络管理员)。
2. 在[转发规则]/[虚拟服务器]设置中需要将 BCNet-S7PPI 的 IP 和 102 端口开放。
3. 在路由器的[运行信息]中获得路由器外网 IP 地址。
4. 将路由器外网 IP 地址告知远程连接者。远程连接者将外网 IP 地址输入 MicroWIN
的 IP 地址浏览器对话框,“双击刷新”查找 PLC。
注:通常路由器的外网 IP 地址是动态申请的,不是静态不变的。
四.PC Access 通讯
S7-200 PC Access 即 S7-200 的 OPC 服务器可以和 BCNet-S7PPI 直接通讯。支持 OPC 通道
的上位机组态软件可以通过 S7-200 OPC 服务器实现对 S7-200PLC 的以太网数据通讯。步骤如
下:
1. 按上面的说明将 MicroWIN 的 PG/PC 接口设置为以太网 TCP/IP 驱动;
2. 打开 PC Access 软件,选择“MicroWIN(TCP/IP)”,鼠标右键选择“新 PLC”,输入
BCNet-S7PPI 的 IP 地址,本地/远程的 TSAP 为 00.00(不需要设置)。
3. 选择新建的 PLC 条目,鼠标右键选择“新/项目”,设置项目(PLC 变量)属性。
4. 将变量拖拉到下面的“测试客户机”窗口。
5. 点击“测试客户机状态”按钮。
无锡北辰 BCNet-S7PPI 用户使用指南 CN02
5
第四章 BCNetS7 OPC、DX 通讯
一.BCNetS7 OPC 通讯
BCNetS7 OPC 服务器是通过集成在 BCNet-S7PPI(以及 BCNet-S7MPI)中的 BCNetS7 协议
进行读写 PLC 数据的。BCNetS7 协议是北辰公司定制的开放的以太网侧通讯协议,目的是使
得一些由高级语言编制的软件系统可以方便的通过以太网 socket 访问 BCNet-S7PPI 来读写
PLC 数据。关于 BCNetS7 协议的详细说明请参本指南后面的附录 A:BCNetS7 以太网通讯协
议。
当然,你也可以选择采用 BCNetS7 OPC 服务器软件,这个软件是免费的,如果采用
BCNetS7 OPC,则需要在你的软件中实现 OPC 客户机功能。采用 BCNetS7 OPC 服务器的好处
是可以同时对多个 BCNet-S7PPI 进行数据通讯,而 PC Access 以及 SimaticNET OPC 对 PLC 连接
数是有限制的。BCNetS7 OPC 服务器被设计成多线程并发通讯,因此并不会占用很高的 CPU
使用率。在实际项目中,对位于同一网段的 74 台 BCNet-S7PPI 进行全速数据读写所占用的
CPU 使用率不到 1%。BCNetS7 OPC 服务器的连接和变量定义由 BCNetS7 OPCEditor 软件来完
成。
二.BCNetS7 DX 通讯
BCNetS7 DX(DataExchange)用于 BCNet-S7PPI 之间(以及 BCNet-S7MPI 之间或者
BCNet-S7PPI 和 BCNet-S7MPI 之间)进行数据交换。BCNet-S7PPI 内部集成 BCNetS7 DX 功能,
需要 BCNetPro 软件才能设置参数。
BCNetS7 DX 共可以配置 8 条数据交换命令,每个命令最多可以读写 200 个字节。命令
由 BCNet-S7PPI 循环执行,在 BCNet-S7PPI 各自连接的 PLC 之间自动实现数据交换,在 PLC
中不需要编写任何指令。每个命令执行的状态信息(状态字)储存到命令所在 BCNet-S7PPI
的 PLC(本地 PLC)的指定数据区。因此你可以在 PLC 程序里通过状态字来判断当前数据是
否有效。
每条 DX 命令的执行时间、正确和错误计数可以通过 BCNetPro 软件的设备运行诊断窗口
来查看。
BCNetS7 DX 的应用:
1.如果两个 S7-200PLC 控制系统需要相互交换数据,系统之间又相距甚远,那么你可
以考虑在每个 S7-200PLC 上各安装一个 BCNet-S7PPI,然后用以太网电缆或者光缆将两个
BCNet-S7PPI 连起来,然后在 BCNet-S7PPI 中(任意一个或者两个)中配置远程读/写命令即
可。
2.如果两个 S7-200PLC 控制系统需要相互交换数据,系统之间距离较近,那么你可以
考虑用 Profibus 总线电缆将两个 S7-200PLC 连接起来,并设置成不同的站地址。然后只需要
一个 BCNet-S7PPI,插入到任意一个 PLC 上。通过 BCNetPro 软件配置 BCNetS7 DX 参数:设
置远程 BCNet-S7PPI 的 IP 地址为自身 IP 地址,配置命令在不同的站地址 PLC 之间交换数据。
无锡北辰 BCNet-S7PPI 用户使用指南 CN02
6
第五章 ModbusTCP 通讯
一.Modbus 地址映射
BCNet-S7PPI 内部集成 ModbusTCP 服务器,支持 ModbusTCP 通讯的客户机软件可以直
接读写 S7-200PLC 的数据。实现功能号包括:FC1、FC2、FC3、FC4、FC5、FC6 和 FC16。
S7-200PLC 的站地址为 Modbus 从站地址。
S7-200PLC 的数据区和 Modbus 数据区在 BCNet-S7PPI 内部被自动映射:
1. S7-200 的 Q 区对应 Modbus 的线圈,Q0.0 对应 00001。
2. S7-200 的 I 区对应 Modbus 的离散输入,I0.0 对应 10001。
3. S7-200 的 M 区对应 Modbus 的输入寄存器,MW0 对应 30001。
4. S7-200 的 V 区对应 Modbus 的乘法寄存器,VW0 对应 40001。
地址计算公式如下:
1. Qm.n = 00001 + m*8 + n。
2. Im.n = 10001 + m*8 + n。
3. MWm= 30001 + m/2,m 为偶数。
4. VWm = 40001 + m/2,m 为偶数。
二.功能限制
注意:FC1(读输出线圈)、FC2(读离散输入)只能对单个位进行操作,不能对多个连
续的位进行读写操作。
三.功能测试
运行光盘中的 ModScan32 软件:
1. 选择菜单 Connection/Connect,选择 Remote TCP/IP Server,输入 BCNet-S7PPI 的 IP
地址,Service 端口为 502;点击[OK]。
2. 在子窗口“ModSca1”中设置 Device ID 为 S7-200PLC 的站地址(如 2)。功能号选
择 03:HOLDING REGISTER,Address = 00001,Length = 10。
3. 子窗口数据区显示 40001-40010 的 16 进制数据,其对应于 S7-200 的 VW0-VW18 数
值。
4. 双击子窗口数据区的数据可以修改数值。
无锡北辰 BCNet-S7PPI 用户使用指南 CN02
7
第六章 BCNet-S7PPI 概述
BCNet-S7PPI 的功能:
支持S7 总线多主站网络通讯。X2接口可以连接西门子触摸屏和非西门子触摸屏,
订货时需要注明触摸屏类型。
S7 总线波特率自动检测,无须设置。
自动查询 S7 总线上的 S7-200 控制器,显示地址列表。
BCNet-S7PPI 直接安装在 S7-200 控制器的 DSub9 通讯口上,并扩展一个编程口
用于其它总线设备连接。BCNet-S7PPI 从通讯口获取电源(也可外接电源),无需通讯电
缆和安装附件,即插即用。
支持西门子 S7 以太网通讯驱动,包括 MicroWIN 编程软件、PC Access(S7-200
OPC 服务器)等。
以太网端口 BCNetS7 协议开放,用户可以按照 BCNetS7 协议采用高级语言编程
(如 VB、VC、C#等)实现与 S7-200 的数据通讯,方便开发生产管理系统。
提供 BCNetS7OPC 服务器,所有集成 OPC 通道的 SCADA(上位机监控组态软
件)可采用 OPC 方式与 S7-200 通讯。
BCNetS7 DataExchange 功能,通过简单的配置(BCNetPro 软件)即可实现在两
个 BCNet-S7PPI 所连接的 PLC 之间自动交换数据。
集成 ModbusTCP 服务器,支持 FC1、FC2、FC3、FC4、FC5、FC6、FC16,
Modbus 数据区自动映射至 S7-200 数据区。
支持 24 个以太网 TCP/IP 连接,允许 24 台 PC 同时采集 S7-200 控制器数据。
通过路由器端口映射可实现 S7-200 控制器的 Internet 远程编程和监控。
无锡北辰 BCNet-S7PPI 用户使用指南 CN02
8
附录 A BCNetS7 以太网通讯协议
BCNetS7 以太网通讯协议用于计算机通过 TCP/IP 协议和 BCNet-S7PPI(或者
BCNet-S7MPI)通讯来读写 S7-200(S7-300)PLC 数据。对于高级语言(VB、VC、C#
等)可以通过调用Winsocket类库来实现通讯。 BCNetS7 以太网通讯协议可通过 BCNetPro
软件进行测试。
一.通讯模式
BCNet-S7PPI 在以太网上作为服务器运行,远程计算机作为客户机通过 TCP/IP 协议连
接到 BCNet-S7PPI 并向其发送和接收数据来实现与 S7-200PLC 的通讯。BCNetS7 协议的
服务端口号为 1099。
二.通讯协议
BCNetS7 的以太网通讯报文由固定的 8 个字节的报文头、8 个字节的扩展报文头和可选
的最大 200 个字节的用户数据组成,无论是发送报文还是接收报文都遵循此结构;如下图:
字节 参数 类型 注释
8 字节报
文头
0 msg.rx byte 接收方识别 ID
1 msg.tx byte 发送方识别 ID
2 msg.ln byte 扩展报文头和用户数据总
长度
3 msg.nr byte 报文 ID
4 msg.a byte 响应号
5 msg.f byte 错误号
6 msg.b byte 命令号
7 msg.e byte 扩展号
8 字节扩
展报文头
8 msg.device_adr byte 远程(PLC)站地址
9 msg.data_area byte 数据区
10,11 msg.data_adr word 数据地址
12 msg.data_idx byte 数据索引号
13 msg.data_cnt byte 数据字节个数
14 msg.data_type byte 数据类型
15 msg.function byte 功能号
用户数据 16~215 msg.d[0~199] byte array 最大 200 个字节的用户数
据
其中:
1. 对于客户机(计算机)的识别 ID 为 0xFF(十进制数 255),服务器(BCNet-S7PPI
模块)的识别 ID 为 0x03(十进制数 3);因此:
1) 客户机发送数据命令帧到服务器:msg.rx=0x03,msg.tx=0xFF;
2) 服务器发送数据响应帧到客户机:msg.rx=0xFF,msg.tx=0x03;
3) 客户机应该对接收报文的 msg.rx 和 msg.tx 进行检查以确定是否是
BCNet-S7PPI 的响应报文;
2. 扩展报文头和用户数据区总长度 msg.ln 为扩展报文头和用户数据之字节数和,因
此:
无锡北辰 BCNet-S7PPI 用户使用指南 CN02
9
1) 客户机发送读数据命令帧到服务器:msg.ln=0x08;无用户数据;
2) 客户机发送写数据命令帧到服务器:msg.ln=0x08+待写数据字节长度;
3) 服务器发送读数据响应帧到客户机:msg.ln=0x08+返回数据字节长度;
4) 服务器发送写数据响应帧到客户机:msg.ln=0x08;无用户数据;
5) 客户机应该根据接收报文的 msg.ln 来判断该报文的完整性;
3. 报文 ID msg.nr 标识每对发送/接收报文的对应信息。为了接收到正确的应答报文,
客户机应在每次发送报文前将 msg.nr 自动增 1,然后判断接收报文的 msg.nr 是否与发送报
文的 msg.nr 一致,如果一致说明接收报文为当前发送报文的响应帧;
4. 响应号 msg.a 在客户机发送报文中为 0x00;在服务器发送报文中应为发送报文的
命令号 msg.b;客户机在接收报文数据时应判断接收报文的 msg.a 是否等于发送报文的
msg.b,如果一致再处理数据;
5. 错误号 msg.f 在客户机发送报文中为 0x00;在服务器发送报文中为错误号,如果
msg.f=0x00 表明客户机的请求被服务器正确处理;客户机应该检查接收报文的 msg.f,如
果非 0 则应重试或者检查发送命令;
6. 命令号 msg.b 在客户机发送报文中为指定命令代号(见后描述),在服务器发送报
文中为 0x00;
7. 扩展号 msg.e 总为 0x00;
8. 8 字节扩展报文头的定义见文档后续每个命令报文的详细描述;
9. 用户数据区在客户机发送读数据命令时长度为 0,即无用户数据区;在客户机发送
写数据命令时储存待写数据;在服务器发送读数据响应帧时储存读取的数据;在服务器发送
写数据响应帧时长度为 0,即无用户数据区;
三.读 DB 块数据
注意:对于 S7-200,V 区对应 DB1 数据块;
客户机发送读数据命令:
字节 参数 类型 注释
8 字节报
文头
0 msg.rx byte 0x03
1 msg.tx byte 0xFF
2 msg.ln byte 0x08
3 msg.nr byte 客户机给定
4 msg.a byte 0x00
5 msg.f byte 0x00
6 msg.b byte 0x31(读写 DB 块)
7 msg.e byte 0x00
8 字节扩
展报文头
8 msg.device_adr byte 远程(PLC)站地址 0-31
9 msg.data_area byte 读起始字节地址的高 8 位
值,=起始地址/256
10,11 msg.data_adr word DB 块号,0~65534;S7-200
的 V 区为 0x0001(DB1)
12 msg.data_idx byte 读起始字节地址的低 8 位
值,=起始地址%256
13 msg.data_cnt byte 需要读取的数据字节个数,
最大为 200
14 msg.data_type byte 0x05(字节)
无锡北辰 BCNet-S7PPI 用户使用指南 CN02
10
15 msg.function byte 0x01(读数据)
服务器发送读数据响应帧:
字节 参数 类型 注释
8 字节报
文头
0 msg.rx byte 0xFF
1 msg.tx byte 0x03
2 msg.ln byte 0x08+读取数据字节数
3 msg.nr byte 与客户机给定一致
4 msg.a byte 0x31(读写 DB 块)
5 msg.f byte 0x00(非 0 代表有错误)
6 msg.b byte 0x00
7 msg.e byte 0x00
8 字节扩
展报文头
8 msg.device_adr byte 远程(PLC)站地址 0-31
9 msg.data_area byte 读起始字节地址的高 8 位
值,=起始地址/256
10,11 msg.data_adr word DB 块号,0~65534;S7-200
的 V 区为 0x0001(DB1)
12 msg.data_idx byte 读起始字节地址的低 8 位
值,=起始地址%256
13 msg.data_cnt byte 已经读取的数据字节个数,
小于等于 200
14 msg.data_type byte 0x05(字节)
15 msg.function byte 0x01(读数据)
用户数据
( 最 大
200 字
节)
16~
16+(读
取数据
字节数
-1)
msg.d[0~( 读 取
数据字节数-1)]
byte array 读取的数据
举例:客户机读取 S7-200(站地址为 2)的 VB100~VB119 共 20 个字节
客户机发送(16 进制):
03 FF 08 01 00 00 31 00 02 00 00 01 64 14 05 01
服务器发送(16 进制):
FF 03 1C 01 31 00 00 00 02 00 00 01 64 14 05 01
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00
绿色数据为读取的 VB100~VB119 共 20 个字节数据;
红色数据为起始地址 VB100(0x0064);
四.写 DB 块数据
注意:对于 S7-200,V 区对应 DB1 数据块;
客户机发送写数据命令:
字节 参数 类型 注释
8 字节报
文头
0 msg.rx byte 0x03
1 msg.tx byte 0xFF
无锡北辰 BCNet-S7PPI 用户使用指南 CN02
11
2 msg.ln byte 0x08+写数据字节数
3 msg.nr byte 客户机给定
4 msg.a byte 0x00
5 msg.f byte 0x00
6 msg.b byte 0x31(读写 DB 块)
7 msg.e byte 0x00
8 字节扩
展报文头
8 msg.device_adr byte 远程(PLC)站地址 0-31
9 msg.data_area byte 写起始字节地址的高 8 位
值,=起始地址/256
10,11 msg.data_adr word DB 块号,0~65534;S7-200
的 V 区为 0x0001(DB1)
12 msg.data_idx byte 写起始字节地址的低 8 位
值,=起始地址%256
13 msg.data_cnt byte 需要写入的数据字节个数,
最大为 200
14 msg.data_type byte 0x05(字节)
15 msg.function byte 0x02(写数据)
用户数据
( 最 大
200 字
节)
16~
16+(写
入数据
字节数
-1)
msg.d[0~( 写 入
数据字节数-1)]
byte array 写入的数据
服务器发送写数据响应帧:
字节 参数 类型 注释
8 字节报
文头
0 msg.rx byte 0xFF
1 msg.tx byte 0x03
2 msg.ln byte 0x08
3 msg.nr byte 与客户机给定一致
4 msg.a byte 0x31(读写 DB 块)
5 msg.f byte 0x00(非 0 代表有错误)
6 msg.b byte 0x00
7 msg.e byte 0x00
8 字节扩
展报文头
8 msg.device_adr byte 远程(PLC)站地址 0-31
9 msg.data_area byte 写起始字节地址的高 8 位
值,=起始地址/256
10,11 msg.data_adr word DB 块号,0~65534;S7-200
的 V 区为 0x0001(DB1)
12 msg.data_idx byte 写起始字节地址的低 8 位
值,=起始地址%256
13 msg.data_cnt byte 已经写入的数据字节个数,
小于等于 200
14 msg.data_type byte 0x05(字节)
15 msg.function byte 0x02(写数据)
无锡北辰 BCNet-S7PPI 用户使用指南 CN02
12
举例:客户机向 S7-200(站地址为 2)的 VD1000 写入数据 0x01020304,共 4 个字
节
客户机发送(16 进制):
03 FF 0C 01 00 00 31 00 02 03 00 01 E8 04 05 02
01 02 03 04
服务器发送(16 进制):
FF 03 08 01 31 00 00 00 02 03 00 01 E8 04 05 02
绿色数据为写入的 VD1000 共 4 个字节数据;
红色数据为起始地址 VD1000(0x03E8);
五.读 M 区数据
客户机发送读数据命令:
字节 参数 类型 注释
8 字节报
文头
0 msg.rx byte 0x03
1 msg.tx byte 0xFF
2 msg.ln byte 0x08
3 msg.nr byte 客户机给定
4 msg.a byte 0x00
5 msg.f byte 0x00
6 msg.b byte 0x33(读写 M 区)
7 msg.e byte 0x00
8 字节扩
展报文头
8 msg.device_adr byte 远程(PLC)站地址 0-31
9 msg.data_area byte 无用,0x00
10,11 msg.data_adr word M 区起始地址,0~65534
[10] = 起始地址/256
[11] = 起始地址%256
12 msg.data_idx byte 无用,0x00
13 msg.data_cnt byte 需要读取的数据字节个数,
最大为 200
14 msg.data_type byte 0x05(字节)
15 msg.function byte 0x01(读数据)
服务器发送读数据响应帧:
字节 参数 类型 注释
8 字节报
文头
0 msg.rx byte 0xFF
1 msg.tx byte 0x03
2 msg.ln byte 0x08+读取数据字节数
3 msg.nr byte 与客户机给定一致
4 msg.a byte 0x33(读写 M 区)
5 msg.f byte 0x00(非 0 代表有错误)
6 msg.b byte 0x00
7 msg.e byte 0x00
8 字节扩
展报文头
8 msg.device_adr byte 远程(PLC)站地址 0-31
9 msg.data_area byte 无用,0x00
无锡北辰 BCNet-S7PPI 用户使用指南 CN02
13
10,11 msg.data_adr word M 区起始地址,0~65534
[10] = 起始地址/256
[11] = 起始地址%256
12 msg.data_idx byte 无用,0x00
13 msg.data_cnt byte 已经读取的数据字节个数,
小于等于 200
14 msg.data_type byte 0x05(字节)
15 msg.function byte 0x01(读数据)
用户数据
( 最 大
200 字
节)
16~
16+(读
取数据
字节数
-1)
msg.d[0~( 读 取
数据字节数-1)]
byte array 读取的数据
举例:客户机读取 S7-200(站地址为 2)的 MB10~MB15 共 6 个字节
客户机发送(16 进制):
03 FF 08 01 00 00 33 00 02 00 00 0A 00 06 05 01
服务器发送(16 进制):
FF 03 0E 01 33 00 00 00 02 00 00 0A 00 06 05 01
00 00 00 00 00 00
绿色数据为读取的 MB10~MB15 共 6 个字节数据;
红色数据为起始地址 MB10(0x000A);
六.写 M 区数据
客户机发送写数据命令:
字节 参数 类型 注释
8 字节报
文头
0 msg.rx byte 0x03
1 msg.tx byte 0xFF
2 msg.ln byte 0x08+写数据字节数
3 msg.nr byte 客户机给定
4 msg.a byte 0x00
5 msg.f byte 0x00
6 msg.b byte 0x33(读写 M 区)
7 msg.e byte 0x00
8 字节扩
展报文头
8 msg.device_adr byte 远程(PLC)站地址 0-31
9 msg.data_area byte 无用,0x00
10,11 msg.data_adr word M 区起始地址,0~65534
[10] = 起始地址/256
[11] = 起始地址%256
12 msg.data_idx byte 无用,0x00
13 msg.data_cnt byte 需要写入的数据字节个数,
最大为 200
14 msg.data_type byte 0x05(字节)
15 msg.function byte 0x02(写数据)
无锡北辰 BCNet-S7PPI 用户使用指南 CN02
14
用户数据
( 最 大
200 字
节)
16~
16+(写
入数据
字节数
-1)
msg.d[0~( 写 入
数据字节数-1)]
byte array 写入的数据
服务器发送写数据响应帧:
字节 参数 类型 注释
8 字节报
文头
0 msg.rx byte 0xFF
1 msg.tx byte 0x03
2 msg.ln byte 0x08
3 msg.nr byte 与客户机给定一致
4 msg.a byte 0x33(读写 M 区)
5 msg.f byte 0x00(非 0 代表有错误)
6 msg.b byte 0x00
7 msg.e byte 0x00
8 字节扩
展报文头
8 msg.device_adr byte 远程(PLC)站地址 0-31
9 msg.data_area byte 无用,0x00
10,11 msg.data_adr word M 区起始地址,0~65534
[10] = 起始地址/256
[11] = 起始地址%256
12 msg.data_idx byte 无用,0x00
13 msg.data_cnt byte 已经写入的数据字节个数,
小于等于 200
14 msg.data_type byte 0x05(字节)
15 msg.function byte 0x02(写数据)
举例:客户机向 S7-200(站地址为 2)的 MW20 写入数据 0x0102,共 2 个字节
客户机发送(16 进制):
03 FF 0A 01 00 00 33 00 02 00 00 14 00 02 05 02
01 02
服务器发送(16 进制):
FF 03 08 01 33 00 00 00 02 00 00 14 00 02 05 02
绿色数据为写入的 MW20 共 2 个字节数据;
红色数据为起始地址 MW20(0x0014);
七.读 I、Q 区(输入/输出信号)数据
客户机发送读数据命令:
字节 参数 类型 注释
8 字节报
文头
0 msg.rx byte 0x03
1 msg.tx byte 0xFF
2 msg.ln byte 0x08
3 msg.nr byte 客户机给定
4 msg.a byte 0x00
5 msg.f byte 0x00
无锡北辰 BCNet-S7PPI 用户使用指南 CN02
15
6 msg.b byte 0x34(读写 I、Q 区)
7 msg.e byte 0x00
8 字节扩
展报文头
8 msg.device_adr byte 远程(PLC)站地址 0-31
9 msg.data_area byte 数据区
0x00:I 区
0x01:Q 区
10,11 msg.data_adr word I、Q 区起始地址,0~65534
[10] = 起始地址/256
[11] = 起始地址%256
12 msg.data_idx byte 无用,0x00
13 msg.data_cnt byte 需要读取的数据字节个数,
最大为 200
14 msg.data_type byte 0x05(字节)
15 msg.function byte 0x01(读数据)
服务器发送读数据响应帧:
字节 参数 类型 注释
8 字节报
文头
0 msg.rx byte 0xFF
1 msg.tx byte 0x03
2 msg.ln byte 0x08+读取数据字节数
3 msg.nr byte 与客户机给定一致
4 msg.a byte 0x34(读写 I、Q 区)
5 msg.f byte 0x00(非 0 代表有错误)
6 msg.b byte 0x00
7 msg.e byte 0x00
8 字节扩
展报文头
8 msg.device_adr byte 远程(PLC)站地址 0-31
9 msg.data_area byte 数据区
0x00:I 区
0x01:Q 区
10,11 msg.data_adr word I、Q 区起始地址,0~65534
[10] = 起始地址/256
[11] = 起始地址%256
12 msg.data_idx byte 无用,0x00
13 msg.data_cnt byte 已经读取的数据字节个数,
小于等于 200
14 msg.data_type byte 0x05(字节)
15 msg.function byte 0x01(读数据)
用户数据
( 最 大
200 字
节)
16~
16+(读
取数据
字节数
-1)
msg.d[0~( 读 取
数据字节数-1)]
byte array 读取的数据
举例 1:客户机读取 S7-200(站地址为 2)的 IB0 共 1 个字节
客户机发送(16 进制):
无锡北辰 BCNet-S7PPI 用户使用指南 CN02
16
03 FF 08 01 00 00 34 00 02 00 00 00 00 01 05 01
服务器发送(16 进制):
FF 03 09 01 34 00 00 00 02 00 00 00 00 01 05 01
00
绿色数据为读取的 IB0 共 1 个字节数据;
红色数据为起始地址 IB0(0x0000);
举例 2:客户机读取 S7-200(站地址为 3)的 QB1~QB2 共 2 个字节
客户机发送(16 进制):
03 FF 08 01 00 00 34 00 03 01 00 01 00 02 05 01
服务器发送(16 进制):
FF 03 0A 01 34 00 00 00 03 01 00 01 00 02 05 01
00 00
绿色数据为读取的 QB1~QB2 共 2 个字节数据;
红色数据为起始地址 QB1(0x0001);
八.写 I、Q 区(输入/输出信号)数据
客户机发送写数据命令:
字节 参数 类型 注释
8 字节报
文头
0 msg.rx byte 0x03
1 msg.tx byte 0xFF
2 msg.ln byte 0x08+写数据字节数
3 msg.nr byte 客户机给定
4 msg.a byte 0x00
5 msg.f byte 0x00
6 msg.b byte 0x34(读写 I、Q 区)
7 msg.e byte 0x00
8 字节扩
展报文头
8 msg.device_adr byte 远程(PLC)站地址 0-31
9 msg.data_area byte 数据区
0x00:I 区
0x01:Q 区
10,11 msg.data_adr word I、Q 区起始地址,0~65534
[10] = 起始地址/256
[11] = 起始地址%256
12 msg.data_idx byte 无用,0x00
13 msg.data_cnt byte 需要写入的数据字节个数,
最大为 200
14 msg.data_type byte 0x05(字节)
15 msg.function byte 0x02(写数据)
用户数据
( 最 大
200 字
节)
16~
16+(写
入数据
字节数
-1)
msg.d[0~( 写 入
数据字节数-1)]
byte array 写入的数据
无锡北辰 BCNet-S7PPI 用户使用指南 CN02
17
服务器发送写数据响应帧:
字节 参数 类型 注释
8 字节报
文头
0 msg.rx byte 0xFF
1 msg.tx byte 0x03
2 msg.ln byte 0x08
3 msg.nr byte 与客户机给定一致
4 msg.a byte 0x34(读写 I、Q 区)
5 msg.f byte 0x00(非 0 代表有错误)
6 msg.b byte 0x00
7 msg.e byte 0x00
8 字节扩
展报文头
8 msg.device_adr byte 远程(PLC)站地址 0-31
9 msg.data_area byte 数据区
0x00:I 区
0x01:Q 区
10,11 msg.data_adr word I、Q 区起始地址,0~65534
[10] = 起始地址/256
[11] = 起始地址%256
12 msg.data_idx byte 无用,0x00
13 msg.data_cnt byte 已经写入的数据字节个数,
小于等于 200
14 msg.data_type byte 0x05(字节)
15 msg.function byte 0x02(写数据)
举例:客户机向 S7-200(站地址为 2)的 QB0 写入数据 0xFF,共 1 个字节
客户机发送(16 进制):
03 FF 09 01 00 00 34 00 02 01 00 00 00 01 05 02
FF
服务器发送(16 进制):
FF 03 08 01 34 00 00 00 02 01 00 00 00 01 05 02
绿色数据为写入的 QB0 共 1 个字节数据;
红色数据为起始地址 QB0(0x0000);
九.读 DB、M、I、Q 的位值
注:BCNetS7 协议只支持对一个位的读取。
客户机发送读位命令:
字节 参数 类型 注释
8 字节报
文头
0 msg.rx byte 0x03
1 msg.tx byte 0xFF
2 msg.ln byte 0x08
3 msg.nr byte 客户机给定
4 msg.a byte 0x00
5 msg.f byte 0x00
6 msg.b byte 和字节操作定义一致
7 msg.e byte 0x00
无锡北辰 BCNet-S7PPI 用户使用指南 CN02
18
8 字节扩
展报文头
8 msg.device_adr byte 远程(PLC)站地址 0-31
9 msg.data_area byte 和字节操作定义一致
10,11 msg.data_adr word 和字节操作定义一致
12 msg.data_idx byte 和字节操作定义一致
13 msg.data_cnt byte 无用 = 0x00
14 msg.data_type byte 高四位值:位偏移 0-7
低四位值:= 4(位)
15
本文档为【BCNet-S7PPI用户使用指南】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。