美化西门子标准报文1通信规约 10页

合集下载

西门子工业网络通信课件精选

西门子工业网络通信课件精选

第1章绪论❖ 1.1 PLC控制网络的基本特点和通信功能❖ 1.2 数据通信❖ 1.3 工业局域网概述❖ 1.4 S7-300/400 PLC的通信网络概述1.1 PLC控制网络的基本特点和通信功能❖ 1.PLC控制网络的基本特点1)传输介质和链接组件标准化2)传输高可靠性3)良好的系统扩展性4)良好的覆盖面积5)较高的数据传输速率❖ 2.PLC的通信功能1)远程控制2)PLC局域网络系统3)PLC与上位机进行点对点通信1.2 数据通信❖具有一定的编码、格式和位长要求的数字信号成为数据信息。

❖数据通信是将数据信息通过适当的传送线路从一台机器传送到另一台机器。

❖数据通信系统的任务是把地理位置不同的计算机和PLC及其他数字设备连接起来,高效率地完成数据的传送、信息交换和通信处理三项任务。

❖数据通信系统组成传送设备传送控制设备传送协议通信软件1.2.1 数据传输方式的分类❖ 1.串行传输与并行传输1)串行传输数据在一个信道上按位顺序传输的方式。

特点:一或两根传输线远距离传输成本低速度慢2)并行传输数据在多个信道同时传输的方式。

特点:传输速度快传输线多,成本高2.频带传输与基带传输1)频带传输把信号调制到某一频带上的传输方式。

三种调制方式:调幅调频调相2)基带传输数据传输系统对信号不做任何调制,直接传输数据的传输方式。

PLC网络大多采用基带传输。

基带传输方式使整个频带范围都用来传输某一数字信号,常用于半双工通信。

频带传输时,在同一传输线路上可用频带分割的方法将频带划分为几个信道,同时传输多路信号,常用于全双工通信。

3.异步传输和同步传输1)异步传输异步传输也称为起止式传输,它是利用起止法来达到收发同步的。

在异步传输中,被传输的数据编码为一串脉冲,每一个传输的字符都有一个附加的起始位和多个停止位。

字节传输由起始位“0”开始,然后是被编码的字节。

通常低位在前,高位在后,接下来是校验位(可省略),最后是停止位“1”(可以是1位、1.5位或2位,用以表示字符的结束)。

siemensT103规约使用指南参考解析

siemensT103规约使用指南参考解析

一、DL/T667-1999(IEC60870-5-103)通信规约1. 通信接口1.1 接口标准:RS232、RS485、光纤。

1.2 通信格式:异步,1位起始位,8位数据位,1位偶校验位,1位停止位。

字符和字节传输由低至高。

线路空闲状态为1。

1.3 通信速率:可变。

默认96001.4 通信方式:主从一对多,Polling方式。

2. 报文格式60870-5-103通信规约有固定帧长报文和可变帧长报文两种报文格式,前者主要用于传送“召唤、命令、确认、应答”等信息,后者主要用于传送“命令”和“数据”等信息。

2.1 固定帧长报文10 H 启动字符CODE 控制域ADDR 地址域C S 代码和16 H 结束字符注:代码和=控制域+地址域(不考虑溢出位,即256模和)2.268 H ————启动字符1(1byte)Length ————长度(1byte)Length ————长度(重复)(1byte)68 H ————启动字符2(重复)(1byte)CODE ————控制域(1byte)ADDR ————地址域(1byte)ASDU ————链路用户数据[(length-2)byte]C S————代码和(1byte)16 H ————结束字符(1byte)注:(1)代码和=控制域+地址域+ ASDU代码和(不考虑溢出位,即256模和)(2)ASDU为“链路用户数据”包,具体格式将在下文介绍(3)Length=ASDU字节数+22.3 控制域控制域分“主从”和“从主”两种情况。

(1)“主从”报文的控制域D7 D6 D5 D4 D3 D2 D1 D0备用PRM FCB FCV 功能码0 11(A)PRM(启动报文位)表明信息传输方向,PRM=1由主站至子站;PRM=0由子站至主站。

(B)FCB(桢记数位)。

FCB = 0 / 1——主站每向从站发送新一轮的“发送/确认”或“请求/响应”传输服务时,将FCB取反。

S7-200USS通信报文传输格式和管理

S7-200USS通信报文传输格式和管理
的控制和过程数据。 • PKW 在许多驱动装置中是作为后台任务处理,因此 PZD 的实时性要
比 PKW 好。
13
概述
➢ 定义 ➢ USS 通信报文传输格式 ➢ USS_INIT 指令 ➢ USS_CTRL 指令 ➢ USS 读/写参数指令 ➢ MM 440 变频器的参数设置
14 14
USS_INIT 指令
的数据都包括在每条报文的净数据区域内。
10
USS 通信报文传输格式
• 净数据区由 PKW 区和 PZD 区组成:
• 以上每小格代表一个字(两个字节),含义如下:
– PKW: 此区域用于读写参数值、参数定义或参数描述文本,并可修改和报 告参数的改变 。其中:
– PKE: 参数 ID。包括代表主站指令和从站响应的信息,以及参数号等 – IND: 参数索引,主要用于与 PKE 配合定位参数 – PWEm:参数值数据
03 的位单元格中填入二进制“1”。其他不需要激活的地址 对应的位
设置为”0“。取整数,计算出的 Active 值为 00000008 h,即
16#00000008,也等于十进制数 8。
17
概述
➢ 定义 ➢ USS 通信报文传输格式 ➢ USS_INIT 指令 ➢ USS_CTRL 指令 ➢ USS 读/写参数指令 ➢ MM 440 变频器的参数设置
115200 bit/s。 • d. Active:此参数决定网络上的哪些USS从站在通信中有效。 • e. Done: 初始化完成标志。 • f. Error: 初始化错误代码。
16
USS_INIT 指令
• USS_INIT 子程序的 Active 参数用来表示网络上哪些 USS 从站要被 主站访问,即在主站的轮询表中激活。网络上作为 USS 从站的驱动 装置每个都有不同的 USS 协议地址,主站要访问的驱动装置,其地 址必须在主站的轮询表中激活。 USS_INIT 指令只用一个 32 位长的 双字来映射 USS 从站有效地址表,Active 的无符号整数值就是它在 指令输入端的取值。

许继iec61850-9-2(le版)通信规约

许继iec61850-9-2(le版)通信规约
如果 MSVCB02 存在,则 xx-xx 需配置。
用于 80 点采样率的采样值的传送。
用于 256 点采样率的采样值的传送。 对应于 TCTR 和 TVTR 中的 HzRtg 数据属性。
3.5 IED 一个 MU 是一个 LD。允许一个 IED 中存在多个 MU(LD)。气
时钟源: 典型的时钟源的 1PPS 产生于 GPS 接收器。它具备±1μs 的精度。
同步运行:
第 4页
许继电气
许继 IEC61850-9-2(LE 版)通信规约
MU 与 Global 1PPS 同步时,SV 报文中的 SmpSynch 属性赋成 2。MU 与 Local 1PPS 同步时,SV 报文中的 SmpSynch 属性赋成 1。
FALSE FALSE
注解
配置,采用 9-2 中的推荐值: 01-0C-CD-04-xx-xx
3.3 运行和对时约定 3.3.1 运行模式 Mod
支持如下属性: ON:正常运行状态,此时 MU 激活,发送数据。 TEST:测试状态,MU 发送数据,数据的 q 属性“test”标志置 TRUE。 OFF:复位状态,MU 不发数据。
非同步运行: MU 收不到同步脉冲信号,SV 报文中的 SmpSynch 属性赋成 0。
3.3.3 派生数据 如果采样数据不是采集实际的测量量,而是通过计算派生的,则对应 SAV
的 q 属性中的 derived 标志应置为 TRUE。
3.4 MU 的配置
表 7:需要配置的 MU 的参数
参数名
值域
LDName
注解
DataSet 定义固定不变
第 3页
许继电气
许继 IEC61850-9-2(LE 版)通信规约

西门子smart200通讯说明文档

西门子smart200通讯说明文档

TPC和西门子SMART200 PLC通讯说明S7-200 SMART CPU 模块本体集成1个以太网接口和一个RS485接口,通过扩展CM01信号版,其通讯端口数量最多可增到3个。

串口支持下列协议:PPI、ModbusRTU、USS、自由口通讯通讯连接方式:<1>采用标准串口型号的西门子PC/PPI电缆。

<2>采用RS232/485转换器连接,RS485的A正B负与PLC编程口3正8负连接。

<3>TPC触摸屏的RS485接口的A正B负与PLC编程口3正8负连接。

注意:1.只支持串口型号的PPI电缆,不支持USB型号的PPI电缆,使用时请注意。

2.TPC触摸屏的DB9针的口里面7、8脚为RS485的正和负。

1 PPI协议通讯SMART200通讯参数设置:SMART200 PLC可以通过西门子STEP 7-MicroWIN SMART配置波特率和PLC地址。

当为SMART200修改参数后,需要将改动参数的系统块下载至SMART200。

每台SMART200 CPU的默认波特率为9.6 kbps(即: 9600 bps),默认PLC地址为2(数据位,停止位,校验位固定为8位、1位,偶校验)。

通讯参数设置方法:1、将电脑本地网卡的IP 设置和PLC的IP在同一个网段内,PLC默认IP为192.168.2.12、通过网线连接好电脑和PLC连接好,运行西门子STEP 7-MicroWIN SMART软件,双击通讯,更新可访问的设备,找到所连接PLC的IP,选择后点击确认。

3、双击系统块,打开通讯部分,设置RS485端口的通讯参数,设置地址和波特率,默认波特率为9.6 kbps(即: 9600 bps),默认PLC地址为2。

4、MCGS添加西门子PPI驱动,通用串口父设备使用默认参数设置,如下图“西门子_S7200PPI”子设备参数设置如下:设备地址:PLC设备地址,可设定范围1-31,默认值为2。

IEC104规约报文说明

IEC104规约报文说明
二、 标准 104 常见的几种报文.......................................................................................5 2.1 站初始化...............................................................................................................5 2.2 链路测试...............................................................................................................5 2.3 对时.......................................................................................................................5 2.4 站总召唤(YX、YC)...........................................................................................5 2.5 站总召唤(KWH).................................................................................................6 2.6 突发传送...............................................................................................................6 2.6.1 YX 突发传送(类型标识 1).....................................................................7 2.6.2 YC 突发传送(类型标识 21)...................................................................7 2.7 SOE 传输................................................................................................................7 2.8 遥控选择...............................................................................................................7 2.9 遥控执行...............................................................................................................7 2.10 遥控撤销...........................................................................................................8 2.11 断开链路...........................................................................................................8

ModBus通讯规约(印刷)三明无线电八厂温控

ModBus通讯规约(印刷)三明无线电八厂温控

Modbus_RTU通讯规约(本协议采用主从问答方式)一、Modbus通讯协议概述Modbus通讯规约允许TDS系列仪表/变送器与施耐德、西门子、AB、GE等多个国际著名品牌的可编程顺序控制器(PLC)、RTU、SCADA系统、DCS或与第三方具有Modbus兼容的监控系统之间进行信息交换和数据传送。

TDS系列仪表/变送器只要简单地增加一套基于计算机(或工控机)的监控软件(如:组态王、Intouch、iFIX、synall等)就可以构成一套工况监控系统。

1、广泛的系统集成TDS系列仪表/变送器提供了标准的RS-485/422通讯接口及ModBus通讯协议,这个通讯协议已广泛被国内外工控行业作为系统集成的标准。

2、通讯数据的类型及格式●信息传输为异步方式,并以字节为单位。

主站和从站之间传递的通讯信息为1:10位格式:(1位起始位,8位数据位,1位停止位,无奇偶校验)2:11位格式:(1位起始位,8位数据位,2位停止位,无奇偶校验)3:11位格式:(1位起始位,8位数据位,1位停止位,1位奇校验)4:11位格式:(1位起始位,8位数据位,1位停止位,1位偶校验)仪表出厂按第2种方式,11位格式:(1位起始位,8位数据位,2位停止位,无奇偶校验),设置方法参看详细的使用说明书。

仪表无此项设置参数为第2种方式。

●通讯数据(信息帧)格式输波特率计算(9600bps约为5ms),信息帧中表示为起始结构(T1–T2–T3–T4),T1、T2、T3、T4分别代表一个字节的静止时间。

当最后一个字节传输完,数据总线静止时间(即无数据时间)还需大于3.5个字节后,才可以开始发送新的数据,信息帧中表示为停止结构(T1–T2–T3–T4)。

一条完整的信息帧必须是连续的信息流,字节间的间隔时间小于1.5个字节。

TDS系列仪表/变送器收到完整的信息帧后延时250ms左右将数据连续送出,当收到本机地址码、正确的功能码后,但无法接收全后面的完整数据信息帧则在2秒左右后回复初始接收状态。

IEC104规约报文说明(104报文解释的比较好的文本)

IEC104规约报文说明(104报文解释的比较好的文本)

IEC104规约报文说明(104报文解释的比较好的文本)IEC104规约调试小结调试广西中调IEC-104规约时对报文作了如下的分析,不对地方请指正。

一、四遥信息体基地址范围“可设置104调度规约”有1997年和2002年两个版本,在流程上没有什么变化,02版只是在97版上扩展了遥测、遥信等信息体基体址,区别如下:三、以公共地址字节数=2,传输原因字节数=2,信息体地址字节数=3为例对一些基本的报文分析第一步:首次握手(U帧)发送→激活传输启动:68(启动符)04(长度)07(控制域)00 00 00接收→确认激活传输启动:68(启动符)04(长度)0B(控制域)00 00 00第二步:总召唤(I帧)召唤YC、YX(可变长I帧)初始化后定时发送总召唤,每次总召唤的间隔时间一般设为15分钟召唤一次,不同的主站系统设置不同。

发送→总召唤:68(启动符)0E(长度)00 00(发送序号)00 00(接收序号)64(类型标示)01(可变结构限定词)06 00(传输原因)01 00(公共地址即RTU地址)00 00 00(信息体地址)14(区分是总召唤还是分组召唤,02年修改后的规约中没有分组召唤)接收→S帧:注意:记录接收到的长帧,双方可以按频率发送,比如接收8帧I帧回答一帧S帧,也可以要求接收1帧I帧就应答1帧S帧。

68 04 01 00 02 00接收→总召唤确认(发送帧的镜像,除传送原因不同):68(启动符)0E(长度)00 00(发送序号)00 00(接收序号)64(类型标示)01(可变结构限定词)07 00(传输原因)01 00(公共地址即RTU地址)00 00 00(信息体地址)14(同上)发送→S帧:注意:记录接收到的长帧,双方可以按频率发送,比如接收8帧I帧回答一帧S帧,也可以要求接收1帧I帧就应答1帧S帧。

68 04 01 00 02 00接收→YX帧(以类型标识1为例):68(启动符)1A(长度)02 00(发送序号)02 00(接收序号)01(类型标示,单点遥信)04(可变结构限定词,有4个遥信上送)14 00(传输原因,响应总召唤)01 00(公共地址即RTU地址)03 00 00(信息体地址,第3号遥信)00(遥信分)发送→S帧:68 04 01 00 04 00接收→YX帧(以类型标识3为例):68(启动符)1E(长度)04 00(发送序号)02 00(接收序号)03(类型标示,双点遥信)05(可变结构限定词,有5个遥信上送)14 00(传输原因,响应总召唤)01 00(公共地址)01 00 00(信息体地址,第1号遥信)02(遥信合)06 00 00(信息体地址,第6号遥信)02(遥信合)0A 00 00(信息体地址,第10号遥信)01(遥信分)0B 00 00(信息体地址,第11号遥信)02(遥信合)0C 00 00(信息体地址,第12号遥信)01(遥信分)发送→S帧:68 04 01 00 06 00接收→YC帧(以类型标识9为例):68(启动符)13(长度)06 00(发送序号)02 00(接收序号)09(类型标示,带品质描述的遥测)82(可变结构限定词,有2个连续遥测上送)14 00(传输原因,响应总召唤)01 00(公共地址)01 07 00(信息体地址,从0X0701开始第0号遥测)A1 10(遥测值10A1)00(品质描述)89 15(遥测值1589)00(品质描述)发送→S帧:68 04 01 00 08 00接收→结束总召唤帧:68(启动符)0E(长度)08 00(发送序号)02 00(接收序号)64(类型标示)01(可变结构限定词)0A 00(传输原因)01 00(公共地址)00 00 00(信息体地址)14(区分是总召唤还是分组召唤,02年修改后的规约中没有分组召唤)发送→S帧:68 04 01 00 0A 00第二步:发送对时报文(通过设置RTU参数表中的”对间间隔”,单位是分钟,一般是20分钟)发送→对时命令:68(启动符)14(长度)02 00(发送序号)0A 00(接收序号)67(类型标示)01(可变结构限定词)06 00(传输原因)01 00(公共地址)00 00 00(信息体地址)01(毫秒低位)02(毫秒高位)03(分钟)04(时)81(日与星期)09(月)05(年)接收→对时确认:68(启动符)14(长度)0C 00(发送序号)02 00(接收序号)67(类型标示)01(可变结构限定词)07 00(传输原因)01 00(公共地址)00 00 00(信息体地址)**(毫秒低位)**(毫秒高位)**(分钟)04(时)81(日与星期)09(月)05(年)发送→S帧:68 04 01 00 0E 00第三步:电度总召唤(如果没有电度此步骤可以省略且可以在对时之前以送.通过设置参数中”全数据扫描间隔”,单位是分钟一般是15分钟召唤一交,如果不需要召唤电度一定要将参数中的电度个数设为0)发送→召唤电度:68(启动符)0E(长度)04 00(发送序号)0E 00(接收序号)65(类型标示)01(可变结构限定词)06 00(传输原因)01 00(公共地址)00 00 00(信息体地址)45(QCC)接收→召唤确认(发送帧的镜像,除传送原因不同) :68(启动符)0E(长度)10 00(发送序号)06 00(接收序号)65(类型标示)01(可变结构限定词)07 00(传输原因)01 00(公共地址)00 00 00(信息体地址)45(QCC)发送→S帧:68 04 01 00 12 00接收→电度数据:68(启动符)1A(长度)12 00(发送序号)06 00(接收序号)0F (类型标示)02(可变结构限定词,有两个电度量上送)05 00(传输原因)01 00(公共地址)01 0C 00(信息体地址,从0X0C01开始第0号电度)00 00 00 00(电度值)00(描述信息)02 0C 00(信息体地址,从0X0C01开始第1号电度)00 00 00 00(电度值)01(描述信息)发送→S帧:68 04 01 00 14 00接收→结束总召唤帧:68(启动符)0E(长度)14 00(发送序号)06 00(接收序号)65(类型标示)01(可变结构限定词)0A 00(传输原因)01 00(公共地址)00 00 00(信息体地址)45(QCC)发送→S帧:68 04 01 00 16 00第四步:如果RTU有变化数据主动上送主动上送变位遥信,类型标识为1或3接收→变位遥信:68(启动符)0E(长度)16 00(发送序号)06 00(接收序号)01(类型标示,单点遥信)01(可变结构限定词,有1个变位遥信上送)03 00(传输原因,表突发事件)01 00(公共地址即RTU地址)03 00 00(信息体地址,第3号遥信)00(遥信分)发送→S帧:68 04 01 00 18 00接收→变位遥信:68(启动符)0E(长度)18 00(发送序号)06 00(接收序号)03(类型标示,双点遥信)01(可变结构限定词,有1个变位遥信上送)03 00(传输原因,表突发事件)01 00(公共地址即RTU地址)06 00 00(信息体地址,第6号遥信)01(遥信分)发送→S帧:68 04 01 00 1a 00主动上送SOE,类型标识为0x1e或0x1f接收→SOE :68(启动符)15(长度)1a 00(发送序号)06 00(接收序号)1e (类型标示,单点遥信)01(可变结构限定词,有1个SOE)03 00(传输原因,表突发事件)01 00(公共地址即RTU地址)08 00 00(信息体地址,第8号遥信)00(遥信分)ad(毫秒低位)39(毫秒高位)1c(分钟)10(时)7a(日与星期)0b(月)05(年)发送→S帧:68 04 01 00 1c 00接收→SOE :68(启动符)15(长度)1c 00(发送序号)06 00(接收序号)1f (类型标示,双点遥信)01(可变结构限定词,有1个SOE)03 00(传输原因,表突发事件)01 00(公共地址即RTU地址)0a 00 00(信息体地址,第10遥信)01(遥信分)2f(毫秒低位)40(毫秒高位)1c(分钟)10(时)7a(日与星期)0b(月)05(年)第四步:如果主站超过一定时间没有下发报文或RTU也没有上送任何报文则双方都可以按频率发送U帧,测试帧发送→U帧:68 04 43 00 00 00接收→应答:68 04 83 00 00 00第五步:遥控发送→遥控预置:68(启动符)0e(长度)20 00(发送序号)06 00(接收序号)2e (类型标示)01(可变结构限定词)06 00(传输原因)01 00(公共地址即RTU地址)05 0b 00(信息体地址,遥控号=0xb05-0xb01=4)82(控合)接收→遥控返校:68(启动符)0e(长度)0e 00(发送序号)06 00(接收序号)2e (类型标示)01(可变结构限定词)07 00(传输原因)01 00(公共地址即RTU地址)05 0b 00(信息体地址,遥控号=0xb05-0xb01=4)82(控合)发送→遥控执行:68(启动符)0e(长度)04 00(发送序号)18 00(接收序号)2e (类型标示)01(可变结构限定词)06 00(传输原因)01 00(公共地址即RTU地址)05 0b 00(信息体地址,遥控号=0xb05-0xb01=4)02(控合)接收→执行确认:68(启动符)0e(长度)12 00(发送序号)08 00(接收序号)2e (类型标示)01(可变结构限定词)07 00(传输原因)01 00(公共地址即RTU地址)05 0b 00(信息体地址,遥控号=0xb05-0xb01=4)02(控合)发送→遥控撤消:68(启动符)0e(长度)04 00(发送序号)18 00(接收序号)2e (类型标示)01(可变结构限定词)08 00(传输原因)01 00(公共地址即RTU地址)05 0b 00(信息体地址,遥控号=0xb05-0xb01=4)02(控合)接收→撤消确认:68(启动符)0e(长度)12 00(发送序号)08 00(接收序号)2e (类型标示)01(可变结构限定词)09 00(传输原因)01 00(公共地址即RTU地址)05 0b 00(信息体地址,遥控号=0xb05-0xb01=4)02(控合)补充说明:1、报文中的长度指的是除启动字符与长度字节的所有字节。

通信规约.(doc)

通信规约.(doc)

101通信规约第一部分基本定义一、适用范围1、网络拓扑结构本规约适用的网络拓扑结构为点对点、多点对点、多点共线、多点环形、多点星形等,通道可以是全双工或半双工的情况。

2、传输方式传输方式分为非平衡方式和平衡方式传输两种。

非平衡方式传输:只有主站启动各种链路传输服务,子站只有当主站请求时才传输。

这种传输方式对于所有网络结构都可适用。

但是在点对点和多点对点的网络结构中,非平衡方式传输没有充分发挥这种网络的内在潜力。

平衡方式传输:主站和子站可以同时启动链路传输服务,所以必须有一对全双工的通道。

这里规定对于点对点和多点对点的网络结构采用平衡方式传输,对于多点共线、多点环形和多点星形的网络结构采用非平衡方式传输。

二、帧格式本规约采用的帧格式为FT1.2异步式字节传输帧格式1、FT1.2可变帧长帧格式其具体格式如下传输规定:(1)线路空闲状态为1(2)每个字符有1位启动位(0),8位数据位,1位偶校验位,1位停止位(1)(3)每个字符间无需线路空闲间隔。

(4)两帧之间的线路空闲间隔最少为33位(5)帧长度L包括控制域、地址域、用户数据的字节总数,L最大为250(6)帧校验和为控制域、地址域、用户数据中所有字节的算术和(不考虑溢出)(7)接收校验●由串行接口芯片检查每个字符的启动位、停止位、偶校验位●校验两个启动字符应一致、两个L值应一致,接收字符数L+6、帧校验和、结束字符无差错则数据有效。

●在校验中,若检出一个差错,则舍弃此帧数据。

2、FT1.2固定帧长帧格式具体格式如下:传输规定:(1)线路空闲状态为1(2)每个字符有1位启动位(0),8位数据位,1位偶校验位,1位停止位(1)(3)每个字符间无需线路空闲间隔。

(4)两帧之间的线路空闲间隔最少为33位(5)无帧长度L(6)帧校验和为控制域、地址域中所有字节的算术和(不考虑溢出)(7)接收校验●由串行接口芯片检查每个字符的启动位、停止位、偶校验位●检查启动字符、结束字符以确定此帧长度是否正确●检查校验和●在校验中,若检出一个差错,则舍弃此帧数据。

西门子S7报文解析

西门子S7报文解析

西门⼦S7报⽂解析1.报⽂的基本格式1.1 第1和第2个字节是:固定报⽂头03 00,这⾥我们就⽤到三种报⽂: a.初始化 b. 读 c.写,都是这种格式;1.2 第3和第4个字节是:整个报⽂的长度;其它部分就是各种报⽂的个性化处理了;下⾯分析⼤量报⽂的案例进⾏规律分析,为了便于对照,每种都⽤1200 和300 两种对照demo显⽰:2.初始化报⽂初始化报⽂分两个交互:2.1 交互⼀西门⼦1200:PC发出报⽂ ( [A18]=0x01 =CPUSlot)03 00 00 16 11 E0 00 00 00 01 00 C1 02 01 00 C2 02 01 01(cpuslot) C0 01 09PLC回复报⽂( B[10]=0x06 可能是西门⼦的⼩型号 B[22]=0x01=CPUSlot)03 00 00 16 11 D0 00 01 00 06 00 C0 01 09 C1 02 01 00 C2 02 01 01 (cpuslot)西门⼦300:PC发出报⽂ ( A[18]=0x02 =CPUSlot)03 00 00 16 11 E0 00 00 00 01 00 C1 02 01 00 C2 02 01 02(cpuslot) C0 01 09PLC回复报⽂ (B[10]=0x04 可能是西门⼦的⼩型号 B[22]=0x0=CPUSlot)03 00 00 16 11 D0 00 01 00 04 00 C0 01 09 C1 02 01 00 C2 02 01 02opc 对 1200 和 300 不⽤配置的不同点,就⼀个地⽅:前者 CPUSlot = 1 ,后者CPUSlot = 2;所以可以摸索规律是:a.pc发起第⼀个初始化报⽂的时候,第18个字节标识了CPUSlot ;b.plc回复报⽂和读取报⽂长度⼀样都是22个字节长度;c.plc回复报⽂的最后⼀个字节也是CPUSlot ,这个可以⽤来校验;d. plc回复的第10个字节⼀个是06,⼀个是04,这个好像是⼩型号的区别;细节摸索下来:1200该字节是06,314是04,315是03;咱写程序的时候,就不要考虑这个来校验了;2.2交互⼆PC发出报⽂03 00 00 19 02 F0 80 32 01 00 00 FF FF 00 08 00 00 F0 00 00 01 00 01 07 80PLC回复报⽂03 00 00 1B 02 F0 80 32 03 00 00 FF FF 00 08 00 00 00 00 F0 00 00 01 00 01 00 F0第⼆个初始化报⽂交互,通过1200 和314,315的对⽐,发现居然完全没有任何区别;所以我们可以把这个交互完全固话;到此,整个初始化处理就算结束了,正常在设计架构的时候,可以这么实现:在ClentSocket的onConnect(即正常连接上)的瞬间,pc给plc发起第⼀个初始请求,得到回复后(为了简单,就仅仅判断长度为22即可);⽴刻发起第⼆个固定的初始话请求,得到长度为24的报⽂后,就通过⼀个布尔变量通知整个系统可以正常读写;3.读操作读demo1:西门⼦1200: 读取DB10, count=17 ,offset=19PC发出报⽂(A[3]~A[4]=0x001F=31=读取报⽂总长度, A[12]~A[13]=0x001C=序列号,A[24]~A[25]=0x0011=17=读取请求count;A[26]~A[27]=0x000A=10=DB10, A[28]=0x84=读取的数据类型为DB块,A[29]~A[31]=0x000098=152=19*8=读取偏移量offset(bit为单位) ) 03 00 00 1F 02 F0 80 32 01 00 00 00 1C 00 0E 00 00 04 01 12 0A 10 02 00 11 00 0A 84 00 00 98PLC回复报⽂:(B[3]~B[4]=0x002A=42=回复报⽂总长度, B[12]~B[13]=0x001C=序列号,B[16]~B[17]=0x0015=21=读取请求count(17)+4B[24]~B[25]=0x0088=17*8=请求数据长度(bit为单位), B[26]~最后=数据值)03 00 00 2A 02 F0 80 32 03 00 00 00 1C 00 02 00 15 00 00 04 01 FF 04 00 88 13 14 15 16 17 00 00 00 00 00 00 00 00 00 00 00 00读demo2:西门⼦1200: 读取DB11, count=17 ,offset=19PC发出报⽂:(A[3]~A[4]=0x001F=31=读取报⽂总长度, A[12]~A[13]=0x008E=序列号,A[24]~A[25]=0x0011=17=读取请求count;A[26]~A[27]=0x000B=11=DB11, A[28]=0x84=读取的数据类型为DB块,A[29]~A[31]=0x000098=152=19*8=读取偏移量offset(bit为单位) ) 03 00 00 1F 02 F0 80 32 01 00 00 00 8E 00 0E 00 00 04 01 12 0A 10 02 00 11 00 0B 84 00 00 98PLC回复报⽂:(B[3]~B[4]=0x002A=42=回复报⽂总长度, B[12]~B[13]=0x001C=序列号,B[16]~B[17]=0x0015=21=读取请求count(17)+4B[24]~B[25]=0x0088=17*8=请求数据长度(bit为单位), B[26]~B[42]=数据值)03 00 00 2A 02 F0 80 32 03 00 00 00 8E 00 02 00 15 00 00 04 01 FF 04 00 88 13 14 15 16 17 18 00 00 00 00 00 00 00 00 21 22 23读demo3:西门⼦1200:读取DB11, count=16 ,offset=18PC发出报⽂:(A[3]~A[4]=0x001F=31=读取报⽂总长度, A[12]~A[13]=0x0013=序列号,A[24]~A[25]=0x0010=16=读取请求count;A[26]~A[27]=0x000B=11=DB11, A[28]=0x84=读取的数据类型为DB块,A[29]~A[31]=0x000090=146=18*8=读取偏移量offset(bit为单位) ) 03 00 00 1F 02 F0 80 32 01 00 00 00 13 00 0E 00 00 04 01 12 0A 10 02 00 10 00 0B 84 00 00 90PLC回复报⽂:(B[3]~B[4]=0x0029=41=回复报⽂总长度, B[12]~B[13]=0x0013=序列号,B[16]~B[17]=0x0014=20=读取请求count(16)+4B[24]~B[25]=0x0080=16*8=请求数据长度(bit为单位), B[26]~B[41]=数据值)03 00 00 29 02 F0 80 32 03 00 00 00 13 00 02 00 14 00 00 04 01 FF 04 00 80 00 13 14 15 16 17 18 00 00 00 00 00 00 00 00 21读demo4:西门⼦300 (314) 读取D50, count=20 ,offset=4000PC发出报⽂:(A[3]~A[4]=0x001F=31=读取报⽂总长度, A[12]~A[13]=0x0028=序列号,A[24]~A[25]=0x0014=20=读取请求count;A[26]~A[27]=0x0032=50=DB50, A[28]=0x84=读取的数据类型为DB块,A[29]~A[31]=0x007D00=32000=4000*8=读取偏移量offset(bit为单位) )03 00 00 1F02 F0 80 32 01 00 00 00 28 00 0E 00 00 04 01 12 0A 10 02 00 14 00 32 8400 7D 00PLC回复报⽂:(B[3]~B[4]=0x002D=45=回复报⽂总长度, B[12]~B[13]=0x0028=序列号,B[16]~B[17]=0x0018=24=读取请求count(20)+4B[24]~B[25]=0x00A0=20*8=请求数据长度(bit为单位), B[26]~B[45]=数据值)03 00 00 2D02 F0 80 32 03 00 00 00 28 00 02 00 18 00 00 04 01 FF 04 00 A0 00 04 0E AB 00 00 00 00 00 00 03 00 00 00 00 00 00 00 0000读demo5:西门⼦300 (315) 读取D10, count=100 ,offset=2PC发出报⽂:(A[3]~A[4]=0x001F=31=读取报⽂总长度, A[12]~A[13]=0x0003=序列号,A[24]~A[25]=0x0064=100=读取请求count;A[26]~A[27]=0x000A=10=DB10, A[28]=0x84=读取的数据类型为DB块,A[29]~A[31]=0x000010=16=2*8=读取偏移量offset(bit为单位) )03 00 00 1F 02 F0 80 32 01 00 00 00 03 00 0E 00 00 04 01 12 0A 10 02 00 64 00 0A 84 00 00 10PLC回复报⽂:(B[3]~B[4]=0x007D=125=回复报⽂总长度, B[12]~B[13]=0x0003=序列号,B[16]~B[17]=0x0068=104=读取请求count(100)+4B[24]~B[25]=0x0320=100*8=请求数据长度(bit为单位), B[26]~B[125]=数据值)03 00 00 7D 02 F0 80 32 03 00 00 00 03 00 02 00 68 00 00 04 01 FF 04 03 20 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00读demo6:西门⼦1200 读取X输⼊(input)两个byte:PC发出报⽂:(A[3]~A[4]=0x001F=31=读取报⽂总长度, A[12]~A[13]=0x0002=序列号,A[24]~A[25]=0x0002=2=读取请求count;A[26]~A[27]=0x000A=10=DB10[其实这⾥写什么都可以,因为input不属于DB块],A[28]=0x81=读取的数据类型为Input,A[29]~A[31]=0x000000=0=0*8=读取偏移量offset(bit为单位) )03 00 00 1F 02 F0 80 32 01 00 00 00 02 00 0E 00 00 04 01 12 0A 10 02 00 02 00 0A 81 00 00 00PLC回复报⽂:(B[3]~B[4]=0x001B=27=回复报⽂总长度, B[12]~B[13]=0x0002=序列号,B[16]~B[17]=0x0068=104=读取请求count(100)+4B[24]~B[25]=0x0320=100*8=请求数据长度(bit为单位), B[26]~B[27]=数据值)03 00 00 1B 02 F0 80 32 03 00 00 00 02 00 02 00 06 00 00 04 01 FF 04 00 10 08 00读demo7:西门⼦1200 读取Y输出(output)两个byte:PC发出报⽂:(A[3]~A[4]=0x001F=31=读取报⽂总长度, A[12]~A[13]=0x0001=序列号,A[24]~A[25]=0x0002=2=读取请求count;A[26]~A[27]=0x000A=10=DB10[其实这⾥写什么都可以,因为input不属于DB块],A[28]=0x82=读取的数据类型为Output,A[29]~A[31]=0x000000=0=0*8=读取偏移量offset(bit为单位) )03 00 00 1F 02 F0 80 32 01 00 00 00 01 00 0E 00 00 04 01 12 0A 10 02 00 02 00 0A 82 00 00 00PLC回复报⽂:(B[3]~B[4]=0x001B=27=回复报⽂总长度, B[12]~B[13]=0x0002=序列号,B[16]~B[17]=0x0068=104=读取请求count(100)+4B[24]~B[25]=0x0320=100*8=请求数据长度(bit为单位), B[26]~B[27]=数据值)03 00 00 1B 02 F0 80 32 03 00 00 00 01 00 02 00 06 00 00 04 01 FF 04 00 10 05 00读demo8:西门⼦1200 读取flag两个byte:03 00 00 1F 02 F0 80 32 01 00 00 05 65 00 0E 00 00 04 01 12 0A 10 02 00 02 00 09 83 00 00 00PLC回复报⽂:(B[3]~B[4]=0x001B=27=回复报⽂总长度, B[12]~B[13]=0x0565=序列号,B[16]~B[17]=0x0006=6=读取请求count(2)+4B[24]~B[25]=0x0010=2*8=请求数据长度(bit为单位), B[26]~B[27]=数据值)03 00 00 1B 02 F0 80 32 03 00 00 05 65 00 02 00 06 00 00 04 01 FF 04 00 10 FF 17根据以上8个报⽂的demo,摸索出⼤致规律如下(未必完全正确,但是应付项⽬可以了);A[1]~A[2]: 03 00 固定报⽂头;A[3]~A[4]: 00 1F 整个读取请求长度为0x1F= 31 ;A[5]~A[11]: 02 F0 80 32 01 00 00 固定6个字节;A[12]~A[13]: 两个字节,标识序列号,回复报⽂相同位置和这个完全⼀样;范围是0~65535;A[14]~A[23]:00 0E 00 00 04 01 12 0A 10 02 固定10个字节A[24]~A[25]:两个字节,访问数据的个数,以byte为单位;A[26]~A[27]: DB块的编号,⽐如DB50, 就是0x32=50, 两个字节,范围是0~65535(也许是⼀个1个字节,因为没有设置估DB255以上的数据块,所以不知道到底是⼏个字节,姑且认为是2个字节);A[28] : 访问数据块的类型:0x81-input ,0x82-output ,0x83-flag , 0x84-DB(这个最常见);A[29]~A[31]: 访问DB块的偏移量offset (地址+1以byte为单位); 3个字节,范围是0~16777216(⼀般⽤不到这么⼤)程序设计的时候,其实主要关注最后4个信息,即:1. A[24]~A[25]: 访问byte个数2. A[26]~A[27]: DB块编号3. A[28] : 数据块类型4.A[29]~A[31] :访问地址偏移量;相当于⾸地址编号B[1]~B[2]: 03 00 固定报⽂头B[3]~B[4]: 整个读取回复报⽂长度:25+读取长度;B[5]~B[11]: 02 F0 80 32 03 00 00 固定6个字节,和读取请求相同的位置⼏乎⼀样,就 B[9]=0x03 ;A[9]=0x01;B[12]~B[13]: 两个字节,标识序列号,回复报⽂相同位置和这个完全⼀样;范围是0~65535;B[14]~B[15]: 两个字节,固定为00 02;对应读取位置是 00 0E;正好 02+0E=10 ;有点补码的感觉,其实不需要关注规律,反正是固定的;B[16]~B[17]:两个字节,=请求读取的字节数+4;B[18]~B[23]:6个字节,固定为:00 00 04 01 FF 04 ;B[24]~B[25]:两个字节, 请求访问的byte个数*8 ;其实就是以⼆进制为单位的个数;由此可以看出,⼀⼝⽓最多访问的地址个数是8192;B[26]~ 最后⼀个:以offset作为⾸地址,所对应的各个byte的值;程序设计的时候,其实只要关注两个信息:1.校验B[3]~B[4]:校验长度正确;2.B[26]~最后⼀个 :获取对应的值;到这⾥读的处理就算结束了;⼏个⼩注意点:1. 对于不同信号的PLC,除了初始化的CPUSolt不同;正常读/写指令是⼀样的;2.读的时候,都是以byte为单位的,如果程序只需要bit,那么还是以Byte为单位去读,将读出的部分按bit再去分解;3.flag类型到底是什么,不是很清楚,有点类似三菱⾥的M点;这个也不需要去深究,⼀般项⽬⾥主要就是⽤DB块;4.读取的长度如果是N(以byte为单位),那么返回的长度就是N*8(以bit为单位);怎么判断长度是否要*8;主要看后⾯是不是紧挨着数据,如果是数据,就需要*8;offset都是以bit为单位的;5.正常读的操作都是DB块,所以在A[26]~A[27]这个字节写⼊DB块的编号,但是对于input,output,flags这三个类型,是不需要数据块编号的,不过我们可以随便写⼀个DB编号;4.写操作写demo1:西门⼦1200 写 db10.WORD18=0xFFFE=65534; 也就是: DB10.b18=0xFF; DB10.B19=0xFE;PC发出报⽂:(A[3]~A[4]=0x0025=37=读取报⽂总长度, A[12]~A[13]=0x0005=序列号,A[16]~A[17]=0x06=写⼊byte个数(2)+4 , A[23]=0x02=写⼊⽅式为byte, A[24]~A[25]=0x0002=2=写⼊个数count; A[26]~A[27]=0x000A=10=DB10,A[28]=0x84=写⼊的数据类型为DB块,A[29]~A[31]=0x000090=144=18*8=读取偏移量offset(bit为单位),A[32]~A[33]=0x0004=写⼊⽅式为Byte , A[34]~A[35]=0x0010=2*8=写⼊byte的个数(bit为单位) ,A[36]~A[37]= 写⼊数据)03 00 00 25 02 F0 80 32 01 00 00 00 05 00 0E 00 06 05 01 12 0A 10 02 00 02 00 0A 84 00 00 90 00 04 00 10 FF FEPLC回复报⽂:( B[12]~B[13]=0x0565=序列号,最后⼀个B[14]=0xFF表⽰写⼊)03 00 00 16 02 F0 80 32 03 00 00 00 05 00 02 00 01 00 00 05 01 FF1200 写⼊ DB10. X2.6=1 (这⾥是按bit写⼊)PC发出报⽂:(A[3]~A[4]=0x0024=36=读取报⽂总长度, A[12]~A[13]=0x0008=序列号,A[16]~A[17]=0x05=写⼊bit个数(1)+4A[26]~A[27]=0x000A=10=DB10,A[28]=0x84=写⼊的数据类型为DB块,A[29]~A[31]=0x000016=22=2*8+6=读取偏移量offset( bit为单位)A[32]~A[33]=0x0003=写⼊⽅式为bit , A[34]~A[35]=0x0001=写⼊bit的个数(bit为单位) ,A[36]= 写⼊数据[0或1])03 00 00 24 02 F0 80 32 01 00 00 00 08 00 0E 00 05 05 01 12 0A 10 01 00 01 00 0A 84 00 00 16 00 03 00 01 01PLC回复报⽂:( B[12]~B[13]=0x0565=序列号,最后⼀个B[14]=0xFF表⽰写⼊)03 00 00 16 02 F0 80 32 03 00 00 00 08 00 02 00 01 00 00 05 01 FF写demo3:1200 写⼊:output0=4PC发出报⽂:(A[3]~A[4]=0x0024=36=读取报⽂总长度, A[12]~A[13]=0x0008=序列号,A[16]~A[17]=0x05=写⼊byte个数(1)+4 ,A[23]=0x02=写⼊⽅式为byte,A[24]~A[25]=0x0001=1=写⼊个数count; A[26]~A[27]=0x0001=DB1(因为是output,所以DB块编号⽆所谓),A[28]=0x82=写⼊的数据类型为output,A[29]~A[31]=0x000000=读取偏移量offset( bit为单位)A[32]~A[33]=0x0004=写⼊⽅式为byte ,A[34]~A[35]=0x0008=1*8=写⼊byte的个数 ,A[36]= 写⼊数据)03 0000 24 02 F0 80 32 01 00 00 00 08 00 0E 00 05 05 01 12 0A 10 02 00 01 00 01 82 00 00 00 00 04 00 08 04PLC回复报⽂:( B[12]~B[13]=0x0565=序列号,最后⼀个B[14]=0xFF表⽰写⼊)03 00 00 16 02 F0 80 32 03 00 00 00 08 00 02 00 01 00 00 05 01 FF写demo4:1200 写输⼊:output 0.3=1PC发出报⽂:(A[3]~A[4]=0x0024=36=写⼊报⽂总长度, A[12]~A[13]=0x0003=序列号,A[16]~A[17]=0x05=写⼊bit个数(1)+4A[23]=0x01=写⼊⽅式为bit,A[24]~A[25]=0x0001=1=写⼊个数count; A[26]~A[27]=0x000A=10=DB10(因为是output,所以DB块编号⽆所谓),A[28]=0x82=写⼊的数据类型为output,A[29]~A[31]=0x000003=读取偏移量offset( bit为单位)A[32]~A[33]=0x0003=写⼊⽅式为bit , A[34]~A[35]=0x0001=写⼊bit的个数(bit为单位) ,A[36]= 写⼊数据[0或1])03 00 00 24 02 F0 80 32 01 00 00 00 03 00 0E 00 05 05 01 12 0A 10 01 00 01 00 01 82 00 00 03 00 03 00 01 01PLC回复报⽂:( B[12]~B[13]=0x0565=序列号,最后⼀个B[14]=0xFF表⽰写⼊)03 00 00 16 02 F0 80 32 03 00 00 00 03 00 02 00 01 00 00 05 01 FF根据以上4个报⽂的demo,摸索出⼤致规律如下(未必完全正确,但是应付项⽬可以了);A[1]~A[2]: 03 00 固定报⽂头;A[3]~A[4]: 整个报⽂长度:35+写⼊长度;A[5]~A[11]: 02 F0 80 32 01 00 00 固定6个字节(和读取的完全⼀样)A[12]~A[13]: 两个字节,标识序列号,回复报⽂相同位置和这个完全⼀样;范围是0~65535;A[14]~A[15]:00 0E 固定2个字节;A[16]~A[17]:写⼊长度+4;A[18]~A[22]: 05 01 12 0A 10 固定5个⾃⼰A[23] : 写⼊⽅式: 01-按bit写⼊; 02-按byte写⼊;A[24]~A[25]:两个字节,写⼊数据的个数(可能是byte或bit, 按A[23]来区分)A[26]~A[27]: DB块的编号A[28] : 写⼊数据块的类型:0x81-input ,0x82-output ,0x83-flag , 0x84-DB(这个最常见);A[29]~A[31]: 写⼊DB块的偏移量offset (地址+1以byte为单位); 3个字节,范围是0~16777216(⼀般⽤不到这么⼤)A[32]~A[33]:写⼊⽅式为: 03-按bit写⼊; 04-按byte写⼊;A[34]~A[35]:写⼊bit的个数(bit为单位)A[36]~最后:连续的写⼊值;B[1]~B[2]: 03 00 固定报⽂头;B[14]: FF 标识写⼊正常;到这⾥,初始化,读,写这3种⽅式都摸索完了,未必都正确,应付开发应该绰绰有余;在接下来的时间⾥,就需要把这些规律变成相应的程序;注意点:1.写⼊可以按byte和bit两种⽅法去操作;2.对于byte,可以⼀⼝⽓写连续多个byte, 理论上⼀条指令连续写bit也可以,但是实践下来,发现有问题,所以对于bit操作,我们就⼀个⼀个写吧;。

61850规约协议

61850规约协议

61850规约协议竭诚为您提供优质文档/双击可除61850规约协议篇一:iec61850通信规约简介同厂家的电子设备(ied)之间通过一种标准(协议)实现互操作和信息共享。

iec61850技术将成为电力系统信息技术的基础,对电力自动化技术的发展产生巨大的影响。

目前iec61850技术在变电站层和间隔层的技术已经成熟,已经到了批量推广的时机。

iec61850变电站通信网络和系统系列标准对于建设现代数字化变电站统一信息平台的意义,符合电力专用的通信产品提供商的进展以及工业以太网交换机的行业专用化趋势。

构建符合iec61850的现代数字化变电站众所周知,随着变电站自动化技术和现代网络通信技术的发展,iec61850标准已成为近年来数字化变电站自动化研究的热点问题之一。

所谓数字化变电站,就是使变电站的所有信息采集、传输、处理、输出过程由过去的模拟信息全部转换为数字信息,并建立与之相适应的通信网络和系统。

传统以来,国内主流的变电站自动化系统中广泛采用的是国际电工委员会iec于1997年颁布的继电保护信息接口配套标准iec60870-5-103规约。

由于该规约制定时间较早,受技术条件的限制,在以太网和智能数字化设备迅速发展的今天,其缺陷日益明显,如:(1)没有定义基于以太网的通信规范。

(2)没有标准的系统功能、二次智能设备的模型规范。

(3)缺乏权威的一致性测试。

(4)不支持元数据传送,没有统一的命名规范。

上述缺陷直接导致变电站自动化系统在建设过程中不同厂家设备之间互操作性较差,不同厂家设备之间互联需要规约转换设备,需要进行大量的信息对点工作,变电站自动化系统集成工作量增加,系统信息处理效率低下。

因此不难看到,随着变电站二次设备及系统的发展,设备一体化、信息一体化已成为必然的趋势,迫切需要一个统一的信息平台实现整个自动化系统。

为了统一变电站通信协议,统一数据模型,统一接口标准,实现数据交换的无缝连接,实现不同厂家产品的互操作,减少数据交换过程中不同协议间转换时的浪费,iectc57工作组在ieee协议uca2.0基础上,组织制定了iec61850——变电站通信网络和系统系列标准,并于20xx年正式发布。

Modbus通讯规约文本

Modbus通讯规约文本

保留以备用户功能所
65~72
留作用户功能的扩展编码

73~119 非法功能
120~127 保留
留作内部作用
128~255 保留
用于异常应答
在这些功能码中较长使用的是 1、2、3、4、5、6 号功能码,使用它们即可实现对下位机的数字量和模拟量的读写操作。 1、读可读写数字量寄存器(线圈状态): 计算机发送命令:[设备地址] [命令号 01] [起始寄存器地址高 8 位] [低 8 位] [读取的寄存器数高 8 位] [低 8 位] [CRC 校验的低 8 位] [CRC 校验的高 8 位] 例:[11][01][00][13][00][25][CRC 低][CRC 高] 意义如下: <1>设备地址:在一个 485 总线上可以挂接多个设备,此处的设备地址表示想和哪一个设备通讯。例子中为想和 17 号(十进制的 17 是十六进制的 11)通讯。 <2>命令号 01:读取数字量的命令号固定为 01。 <3>起始地址高 8 位、低 8 位:表示想读取的开关量的起始地址(起始地址为 0)。比如例子中的起始地址为 19。 <4>寄存器数高 8 位、低 8 位:表示从起始地址开始读多少个开关量。例子中为 37 个开关量。 <5>CRC 校验:是从开头一直校验到此之前。在此协议的最后再作介绍。此处需要注意,CRC 校验在命令中的高低字节的顺序和其他的 相反。 设备响应:[设备地址] [命令号 01] [返回的字节个数][数据 1][数据 2]...[数据 n][CRC 校验的低 8 位] [CRC 校验的高 8 位] 例:[11][01][05][CD][6B][B2][0E][1B][CRC 低][CRC 高] 意义如下: <1>设备地址和命令号和上面的相同。

104规约报文说明

104规约报文说明

104规约报文说明主站与子站通过IEC60870 -5-104 规约通讯协议说明目录目录 (1)、八―丄前言 (1)一、IEC60870-5-104 应用规约数据单元基本结构 (2)1.1 应用规约数据单元APDU (2)1.2 应用规约控制信息APCI (2)1.3 应用服务数据单元ASDU (3)二、IEC60870-5-104 规约的过程描述 (5)三、IEC60870-5-104 规约源码分析(报文分析) (5)3.1启动连接(U 格式) (5)3.2启动连接确认(U 格式) (6)3.3总召唤(I 格式) (6)3.4总召唤确认(I 格式) (6)3.5数据确认(S 格式) (6)3.6总召唤结束(I 格式) (7)3.7测试连接(U 格式) (7)3.8测试连接确认(U 格式) (7)3.9.遥信信息(I 格式) (7)3.9遥测信息(I 格式) (10)3.10 SOE 信息(I 格式) (11)根据全国电力系统控制及其通信标准委员会三届五次会议和最近出版的国标DL/T634.5.104:2002 对104 规约的参数选择做了如下说明:1、采用端正101 规约中的链路地址和短报文(指链路确认报文)2、采用召唤一级数据3、两个字节表示公共地址(站址)4、两个字节表示传送原因5、三个字节表示信息体地址上述3、4、 5 点与上一次通讯协议具体说明有冲突,为执行国际国内标准,建议根据上述要求对报文做如下修改。

IEC60870-5-104应用规约数据单元基本结构应用规约数据单元:APDU( Applicati on protocal data unit ) 应用规约控制信息:APCI (Application protocal control information )应用服务数据单ASDU( Applicati on protocal con trol unit )APDU=APCI + ASDU1.1应用规约数据单元APDU定义了启动字符、应用服务数据单元的长度规范、可传输一个完整的应用规约数据单丿元。

104规约(2002版)报文解析

104规约(2002版)报文解析

104规约(2002版)报文解析启动字符68H数据单元长度控制域1 控制域2 控制域3 控制域4 应用服务数据单元APCI应用规约控制信息ASDU应用服务数据单元APDU应用规约控制单元类型标示TYP可变结构体限定词VSQ 传送原因COT 应用服务数据单元公共地址信息体数据单元标识符信息体ASDU应用服务数据单元控制域定义了保护报文不至丢失和重复传送的控制信息,报文传输启动/停止,以及传输连接的监视等,控制域格式分为用于编号的信息传输(I格式),编号的监视功能(S格式)和未编号的控制功能(U格式)1、I格式:I格式通常包含ASDU,用来传输具体信息2、S格式:S格式通常用来可计数的确认功能3、U 格式:U 格式通常用来进行链路的启动,停止,测试等功能注意:报文全部为16进制1初始化主站下发: 68 04 07 00 00 00目的:给子站发请求链路状态命令。

报文解析:子站回答:68 04 0B 00 00 00目的:子站响应主站的链路状态。

报文解析:子站回答:68 0E 00 00 00 00 46 01 04 00 01 00 00 00 00 00680407000000启动字符 数据单元长度4 控制域1,U 帧:启动生效位置1 控制域2,U 帧默认0 控制域3,U 帧默认0 控制域4,U 帧默认0 68040B000000 启动字符 数据单元长度4 控制域1,U 帧:启动确认位置1 控制域2,U 帧默认0 控制域3,U 帧默认0 控制域4,U 帧默认0目的:初始化结束。

报文解析:初始化原因(COI)COI=CP8{UI7[1..7],BS1[8]}低7位=0表示当地电源合上=1表示当地手动复位=2表示远方复位=3到31为本配套标准的标准定义保留(兼容范围) =32到127为特定使用保留(专用范围)最高位(第8位)=0表示未改变当地参数的初始化 =1表示改变当地参数后的初始化2总召唤主站下发:68 0E 00 00 06 00 64 01 06 00 01 00 00 00 00 14目的:向地址为01的子站发总召唤命令。

(示例)西门子103规约初始化过程

(示例)西门子103规约初始化过程

103规约-初始化过程(示例)2007-06-2710:34以下是我中心与某厂家装置通信过程初始化报文,对部分报文加以分析,与各位分享。

M->S1Phy1040014116Dat PRM=1FCV=0Reset CU Address=01App注:主站复位通信单元,子站应删除缓冲区内的报文.S->M2Phy1020012116Dat PRM=0ACD=1DFC=0ACK Address=01AppM->S3Phy107A017B16Dat PRM=1FCB=1FCV=1Request user data class1Addre ss=01AppS->M4Phy6816166828010A810101FE F40001017B011206 010********C00E916Dat L=22PRM=0ACD=1DFC=0User data Address=01 Link user data=0A81...0C00App Generic data(=10)SQ=1Number of elements=1Cause of transmission:Spontaneous(=1)Common address=01Function type=254(Generic function type)INF=244(Read value or attribute of a single entry)Return information identifier(RII)=0Number of generic data sets(NGD):no=1,count=0,cont=0Generic identification number(GIN):group=1,entry=123 (ENTRY identifier)Kind of description(KOD):Actual value Generic data description:(datatype=18,datasize=6,number=1,cont=0)General identification data:(DPI=ON Time:valid, standard,12:17:29.974Supplementary information(SIN)=0)注:错误-采用通用分类服务上送的事件信息,在复位CU命令下仍然能够传输.按照规约,此时子站清空发送缓冲区,且应马上回复复位确认信息(ASDU5).M->S5Phy105A015B16Dat PRM=1FCB=0FCV=1Request user data class1Addre ss=01AppS->M6Phy6816166828010A810101FE F400010172011206 010********C00D716Dat L=22PRM=0ACD=1DFC=0User data Address=01 Link user data=0A81...0C00App Generic data(=10)SQ=1Number of elements=1Cause of transmission:Spontaneous(=1)Common address=01Function type=254(Generic function type) INF=244(Read value or attribute of a single entry)Return information identifier(RII)=0Number of generic data sets(NGD):no=1,count=0,cont=0Generic identification number(GIN):group=1,entry=114(ENTR Y identifier)Kind of description(KOD):Actual value Generic data description:(datatype=18,datasize=6,number=1,cont=0)General identification data:(DPI=ON Time:valid,stan dard,12:17:33.025Supplementary information(SIN)=0)M->S7Phy107A017B16Dat PRM=1FCB=1FCV=1Request user data class1Addre ss=01AppS->M8Phy6816166828010A810101FE F40001017F011206 010********C00E416Dat L=22PRM=0ACD=1DFC=0User data Address=01 Link user data=0A81...0C00App Generic data(=10)SQ=1Number of elements=1Cause of transmission:Spontaneous(=1)Common address=01Function type=254(Generic function type)INF=244(Read value or attribute of a single entry)Return information identifier(RII)=0Number of generic data sets(NGD):no=1,count=0,cont=0Generic identification number(GIN):group=1,entry=127 (ENTRY identifier)Kind of description(KOD):Actual value Generic data description:(datatype=18,datasize=6,number=1,cont=0)General identification data:(DPI=ON Time:valid, standard,12:17:33.025Supplementary information(SIN)=0)M->S9Phy105A015B16Dat PRM=1FCB=0FCV=1Request user data class1Addre ss=01AppS->M10Phy6816166828010A810101FE F40001017B011206 010235B7110C004A16Dat L=22PRM=0ACD=1DFC=0User data Address=01 Link user data=0A81...0C00App Generic data(=10)SQ=1Number of elements=1Cause of transmission:Spontaneous(=1)Common address=01Function type=254(Generic function type)INF=244(Read value or attribute of a single entry)Return information identifier(RII)=0Number of generic data sets(NGD):no=1,count=0,cont=0Generic identification number(GIN):group=1,entry=123 (ENTRY identifier)Kind of description(KOD):Actual value Generic data description:(datatype=18,datasize=6,number=1,cont=0)General identification data:(DPI=ON Time:valid, standard,12:17:46.901Supplementary information(SIN)=0)M->S11Phy107A017B16Dat PRM=1FCB=1FCV=1Request user data class1Add ress=01AppS->M12Phy6816166828010A810101FE F400010172011206 010189B7110C009416Dat L=22PRM=0ACD=1DFC=0User data Address=01 Link user data=0A81...0C00App Generic data(=10)SQ=1Number of elements=1Cause of transmission:Spontaneous(=1)Common address=01Function type=254(Generic function type)INF=244(Read value or attribute of a single entry)Return information identifier(RII)=0Number of generic data sets(NGD):no=1,count=0,cont=0Generic identification number(GIN):group=1,entry=114 (ENTRY identifier)Kind of description(KOD):Actual value Generic data description:(datatype=18,datasize=6,number=1,cont=0)General identification data:(DPI=OFF Time:valid, standard,12:17:46.985Supplementary information(SIN)=0)M->S13Phy105A015B16Dat PRM=1FCB=0FCV=1Request user data class1Addr ess=01AppS->M14Phy6816166828010A810101FE F40001017F011206 0101A4B7110C00BC16Dat L=22PRM=0ACD=1DFC=0User data Address=01 Link user data=0A81...0C00App Generic data(=10)SQ=1Number of elements=1Cause of transmission:Spontaneous(=1)Common address=01Function type=254(Generic function type) INF=244(Read value or attribute of a single entry)Return information identifier(RII)=0Number of generic data sets(NGD):no=1,count=0,cont=0Generic identification number(GIN):group=1,entry=127(ENT RY identifier)Kind of description(KOD):Actual value Generic data description:(datatype=18,datasize=6,number=1,cont=0)General identification data:(DPI=OFF Time:valid,st andard,12:17:47.012Supplementary information(SIN)=0)M->S15Phy107A017B16Dat PRM=1FCB=1FCV=1Request user data class1Addr ess=01AppS->M16Phy68151568280105810401010303554E49544544 203939313141B916Dat L=21PRM=0ACD=1DFC=0User data Address=01 Link user data=0581 (3141)App Identification(=5)SQ=1Number of elements=1Cause of transmission:Reset communication unit (CU)(=4)Common address=01unction type=1(Private)INF=3 (Reset CU)Compatibility level(COL)=3(With use of generic services)ASCII=XXXXManufacturer's internal software identification=XXX注:采用传输原因4回复主站复位CU命令.但响应优先级应较高(即在发送缓冲区内所有信息之前).M->S17Phy105A015B16Dat PRM=1FCB=0FCV=1Request user data class1Add ress=01AppS->M18Phy68151568080105810501010403554E495445 442039393131419B16Dat L=21PRM=0ACD=0DFC=0User data Address=01 Link user data=0581 (3141)App Identification(=5)SQ=1Number of elements=1Cause of transmission:Start/restart(=5)Common address=01Function type=1(Private)INF=4 (Start/restart)Compatibility level(COL)=3(With use of generic services)ASCII=UNITED9Manufacturer's internal software identification=911A 注:上送"启动/重启动"信号,其功能采用自定义功能类型FUN=1.M->S19Phy680F0F68730106810801FF00792D120C B60A04 8B16Dat L=15PRM=1FCB=1FCV=1User data/confirm expected Address=01Link user data=0681...0A04App Time synchronisation(=6)SQ=1Number of elements=1Cause of transmission:Time synchronisation(=8)Common address=01Function type=255(Global function type)INF=0(Initiation/End of general interrogation/Time synchronisation)Time:valid,standard,Fri22-10-200412:18:11.641注:初始化后主站发送时钟同步命令.S->M20Phy1020012116Dat PRM=0ACD=1DFC=0ACK Address=01AppM->S21Phy105A015B16Dat PRM=1FCB=0FCV=1Request user data class1Addr ess=01AppS->M22Phy680F0F68080106810801FF00792D120C B60A04 2016Dat L=15PRM=0ACD=0DFC=0User data Address=01 Link user data=0681...0A04App Time synchronisation(=6)SQ=1Number of elements=1Cause of transmission:Time synchronisation(=8)Common address=01Function type=255(Global function type)INF=0(Initiation/End of general interrogation/Time synchronisation)Time:valid,standard,Fri22-10-200412:18:11.641注:子站回应时间与主站一致,值得推敲.因为按标准规定时钟同步命令响应报文时间应为子站收到命令一刻的当地时间,也就说,一般响应报文和主站发的报文时间基本是不一样的.国内许多厂家都简单处理为一致,严格讲不符合规约的规定.M->S23Phy68090968730107810901FF00010616Dat L=9PRM=1FCB=1FCV=1User data/confirm expected Address=01Link user data=0781 (0001)App General interrogation(=7)SQ=1Number of elements=1Cause of transmission:Initiation of general interrogation(=9)Common address=01Function type=255(Global function type)INF=0(Initiation/End of general interrogation/Time synchronisation)Scan number(SCN)=1注:站初始化后的总召唤过程,值得注意的是很多厂家都不关心SCN扫描序号.实际上它很重要,子站可以根据不同的SCN区分主站不同批次的召唤命令并灵活处理.扫描序号的变化方式并没有规定,也就是说每次不同即可.S->M24Phy1020012116Dat PRM=0ACD=1DFC=0ACK Address=01AppM->S25Phy105A015B16Dat PRM=1FCB=0FCV=1Request user data class1AddrAppS->M26Phy680E0E68280101810901011202843E120C01AB 16Dat L=14PRM=0ACD=1DFC=0User data Address=01 Link user data=0181...0C01App Time-tagged message(=1)SQ=1Number of elements=1Cause of transmission:General interrogation(=9)Common address=01unction type=1(Private)INF=18 (Protection active)DPI=ONTime:valid,standard,12:18:16.004Supplementary information(SIN)=1(SIN means Scan number of the GI)注:很多人认为用ASDU1传送遥信效率不高(1次传1个点),但事实上规约就是这样的.当然行标对此进行了改进,采用了ASDU40/42/44/46作为总召唤用,可一帧传多个遥信.另外,行标还定义了ASDU41/43,作为传送状态变位报文,也是一帧多个遥信的,提高了通信效率,当然也加大了国内产品和国外产品的互联难度.M->S27Phy107A017B16Dat PRM=1FCB=1FCV=1Request user data class1Addr ess=01AppS->M28Phy68090968080108810A01FF00019D16Dat L=9PRM=0ACD=0DFC=0User data Address=01 Link user data=0881 (0001)App General interrogation termination(=8)SQ=1Number of elements=1Cause of transmission:Termination of general interrogation(=10)Common address=01Function type=255(Global function type)INF=0(Initiation/End of general interrogation/Time synchronisation)Scan number(SCN)=1注:总召唤结束,SCN扫描序号应与主站命令中相同.另外以上总召唤响应报文中的SIN(补充信息)也是与主站的SCN是相同的,这同样也便于了主站识别子站上送召唤信息的批次.M->S29Phy105B015C16Dat PRM=1FCB=0FCV=1Request user data class2AddrAppS->M30Phy1009010A16Dat PRM=0ACD=0DFC=0NACK:data not available Addre ss=01App以上是一个103规约站初始化的实例,有部分错误.反映出的主要问题就是:1.复位命令下设备发送缓冲区的清除问题.2.总召唤命令SCN与SIN/RII等的对应问题.3.复位命令响应的优先级问题.4.总召唤上送的状态量信息采用何种ASDU的效率问题.5.时钟同步命令应答帧的时标时间问题.6.自定义功能类型FUN所可能带来的互操作困难问题.。

siemens 103规约使用指南

siemens 103规约使用指南

一、DL/T667-1999(IEC60870-5-103)通信规约1. 通信接口1.1 接口标准:RS485。

1.2 通信格式:异步,1位起始位,8位数据位,1位偶校验位,1位停止位。

字符和字节传输由低至高。

线路空闲状态为1。

1.3 通信速率:可变。

默认96001.4 通信方式:主从一对多,Polling方式。

2. 报文格式60870-5-103通信规约有固定帧长报文和可变帧长报文两种报文格式,前者主要用于传送“召唤、命令、确认、应答”等信息,后者主要用于传送“命令”和“数据”等信息。

2.1 固定帧长报文启动字符控制域地址域代码和结束字符注:代码和=控制域+地址域(不考虑溢出位,即256模和)2.2————启动字符1(1byte)————长度(1byte)————长度(重复)(1byte)————启动字符2(重复)(1byte)————控制域(1byte)————地址域(1byte)————链路用户数据[(length-2)byte]————代码和(1byte)————结束字符(1byte)注:(1)代码和=控制域+地址域+ ASDU代码和(不考虑溢出位,即256模和)(2)ASDU为“链路用户数据”包,具体格式将在下文介绍(3)Length=ASDU字节数+22.3 控制域控制域分“主∧从”和“从∧主”两种情况。

(1)“主∧从”报文的控制域D7 D6 D5 D4 D3 D2 D1 D0备用PRM FCB FCV 功能码0 11(A)PRM(启动报文位)表明信息传输方向,PRM=1由主站至子站;PRM=0由子站至主站。

(B)FCB(桢记数位)。

FCB = 0 / 1——主站每向从站发送新一轮的“发送/确认”或“请求/响应”传输服务时,将FCB取反。

主站为每个从站保存一个FCB的拷贝,若超时未收到应答,则主站重发,重发报文的FCB保持不变,重发次数最多不超过3次。

若重发3次后仍未收到预期应答,则结束本轮传输服务。

西门子 报文详细

西门子 报文详细
ຫໍສະໝຸດ ZSWPZD1ZSW1
PZD2 POS_ZSW1
PZD3 POS_ZSW2
状态字1 基本定位器的状态字1 基本定位器的状态字2
SCOUT变量名称 ZSW1_Bit0 ZSW1_Bit1 ZSW1_Bit2 ZSW1_Bit3 ZSW1_Bit4 ZSW1_Bit5 ZSW1_Bit6 ZSW1_Bit7 ZSW1_Bit8 ZSW1_Bit9 ZSW1_Bit10 ZSW1_Bit11 ZSW1_Bit12 ZSW1_Bit13 ZSW1_Bit14 ZSW1_Bit15 POS_ZSW1_Bit0 POS_ZSW1_Bit1 POS_ZSW1_Bit2 POS_ZSW1_Bit3 POS_ZSW1_Bit4 POS_ZSW1_Bit5 POS_ZSW1_Bit6 POS_ZSW1_Bit7 POS_ZSW1_Bit8 POS_ZSW1_Bit9 POS_ZSW1_Bit10 POS_ZSW1_Bit11 POS_ZSW1_Bit12 POS_ZSW1_Bit13 POS_ZSW1_Bit14 POS_ZSW1_Bit15 POS_ZSW2_Bit0 POS_ZSW2_Bit1 POS_ZSW2_Bit2 POS_ZSW2_Bit3 POS_ZSW2_Bit4 POS_ZSW2_Bit5 POS_ZSW2_Bit6 POS_ZSW2_Bit7 POS_ZSW2_Bit8 POS_ZSW2_Bit9 POS_ZSW2_Bit10 POS_ZSW2_Bit11 POS_ZSW2_Bit12 POS_ZSW2_Bit13 POS_ZSW2_Bit14
点动1命令 点动2命令 通过PLC控制驱动器 启动回参考点命令 预留 外部块变化 预留 预留 选择程序步 bit0 选择程序步 bit1 选择程序步 bit2 选择程序步 bit3 选择程序步 bit4 选择程序步 bit5 预留 预留 直接数据输入/MDI_定位模式 1:绝对位置 0:相对位置 直接数据输入/MDI_方向选择 正向 直接数据输入/MDI_方向选择 反向 预留 直接数据输入/MDI_数据传输方式 1:连续 0:单步 预留 直接数据输入/MDI_设置选择 1:速度模式 0:位置模式 直接数据输入/MDI_选择(激活MDI功能) 激活程序步模式 激活轴的“设置参考点”命令,将当前位置设置成零位。 参考点挡块信号 预留 预留 设置点动模式 0:速度模式 1:位置模式 预留 预留 选择回参考点方式 0:主动回零 1:被动回零 设置寻参考点方向 0:正向回零 1:反向回零 选择测量探头的评估,闭环位置控制 测量探头评价优势,闭环位置控制 预留 预留 激活软限位 激活硬限位 驱动数据设置 bit 0 驱动数据设置 bit 1 驱动数据设置 bit 2 驱动数据设置 bit 3 驱动数据设置 bit 4 预留 预留 轴停车命令 预留 预留
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
速度获取:
变频器传递十进制有符号整数 16384(4000H 十六进制) 对应于 100%的速度,最大速度为 32767(200%),PLC读取 变频器转速值后,要经过标准化才能得到实际转速。
谢谢聆听
标准报文1:转速控制
STW1 ZSW1
NSOLL_A NIST_A
西门子标准报文1通信规约 西门子标准报文1控制字
西门子标准报文1通信规约 西门子标准报文1控制字
西门子标准报文1通信规约 西门子标准报文1状态字
西门子标准报文1通信规约 西门子标准报文1状态字
西门子标准报文1通信规约
西门子标准报文1应用
变频起停:
16#047E 变频器停止 16#047F 变频器起动
速度设定:
速度设定值要经过标准化,变频器接收十进制有符号整 数 16384(4000H 十六进制)对应于 100%的速度,接收的最 大速度为 32767(200%)。
西门子标准报文1通信规约
西门子标准报文1应用
变频状态:
读取状态字可知变频器运行状态,变频器是否运行,正 反转等。
西门子标准报文1通信规约源自 西门子标准报文1通信规约CONTENTS
1 西门子标准报文1概述 2 西门子标准报文1控制字 3 西门子标准报文1状态字 4 西门子标准报文1应用
西门子标准报文1通信规约
西门子标准报文1概述
在西门子自动化系统中,PLC经常以通信方式与底层变频器交换数据,控制变频 器起动和停止,并通过网络获取电机运行状态。
相关文档
最新文档