当前位置:文档之家› 西门子PLC通信协议

西门子PLC通信协议

西门子PLC通信协议

A.协议综述

1.本协议为USS协议(Universal Serial Interface Rrotocol)。采用主从寻址方式,最多一个主机,31个从机(数据报中只有5位用来表示地址)。

2.数据报传输方式

数据报传输有循环和非循环方式。

循环方式:

主机定时发送任务数据报给从机,并等待接收从机发回的响应数据报。从机收到任务数据报后,如果校验无错,且地址相符,就发送相应的响应数据报。

在此种方式下,从机应监视数据传送时间看是否超时,若过了一定时间仍未收到新的任务数据报,则继续发送对上一任务的响应,但数据使用当前的实时数据。循环方式可用于过程控制。

非循环方式:

主机发送任务数据报不需按任何时间规律,从机不监视任务数据报是否超时。

3.广播

数据报的地址字节中“广播位”置为1表示为广播数据报,所有从机都接收,但不发送响应数据报。

4.数据报结构

STX:1字节,数据报头,值为0x02。由于仅根据0x02并不能准确判断是否是一帧的开始,所以在一帧之前必须有至少2字符的起始延迟,具体时间如下表:

LGE: 1字节,为报文长度,指从ADR到BCC的字节数。

LGE≤254 LGE = n+2

ADR: 1字节

第1-4位表示从机地址;

第5位为1表示广播数据报,则0-4位无用;

第6位为1表示此数据报为镜像数据报,从机应不作任何改变原样发回;

第7位为1表示特殊数据报,它的格式与本协议所定义的不同,各设备自己定义,仍根据是否广播决定是否回应;

第5、6位不能同时为1。

1-n为有效数据,其意义和长度见第C节。

BCC: Block Check Character,校验字节,为从STX到n.的异或和。

诊断:通信状态信息可以显示在控制面板上,各参数意义见第A-10页。

发送顺序:发送字时先发送高字节,发送双字时先发送高字。

B.物理接口

采用EIA485标准,若点对点通信也可用RS232。

C.有效数据的定义

2.有效数据块的总体结构

有效数据分成两个区域:PKW区和PZD区。

PKW区为参数ID和值,包括任务ID、响应ID、参数号、参数值等;

PZD区为过程数据区,包含自动控制所需的数据:控制字和设定值(主机→从机)、状态字和实时值(从机→主机)。

USS 协议在串行接口上可以设置波特率、总线地址、超时时限、PKW长度和PZD长度(以word为单位)。PKW长度为127时表示变长,需根据具体任务来判断长度。PZD则最长不超过16个字。通过此处的设置使主从取得

一致。

3.PKW区

PKW区包含任务(主→从)或者响应(从→主)信息。分为3部分:

PKE: 1word,用于标识任务、响应。

IND: 1word,即索引index,具体见后。

PWE: 根据任务不同长度不同,携带参数值、文本或参数描述数据。

3.1 PKW结构

PKW区可定义为3word定长、4word定长或变长。

3word定长:

4word定长:

变长:

3.2 PKW各部分说明

3.2.1 PKE(Parameter ID)

Bit No:

AK: 任务和响应ID

SP: 参数改变报告

PNU: 参数号

3.2.1.1 AK:任务和响应ID

AK由15、14、13、12四位组成,作为任务和响应的标识。

例如:任务ID 0001表示召唤一个word参数值,至于具体哪个参数,在参数号PNU中指定。响应ID 0001则表示上传一个word参数值,PNU仍指明参数号,数值放在PWE中。其他ID定义见第C-12、13、14页。

若任务不能被执行,则返回响应ID 0111,并将错误代码放在PWE中。

错误代码定义见第C-14页。

有的任务会用到索引IND,例如任务0110召唤参数值,参数存在于一个数组中,由IND指明所要召唤的元素下标,IND为255表示召唤所有元素。

一个任务和响应一般只涉及到一个参数,只有当IND值为255时例外。

对于任务ID 0000 (no task),从机应返回ID 0000 (no response)。

主机收到响应数据报后不需要通知从机。

3.2.1.2 SP: 参数改变报告

PKE的第11位SP为参数改变报告标志。当某个参数值(PWE)改变时,从机向主机发送参数改变报告。所有参数都在PBE中被定义为主动或被动参

数,只有主动参数改变时从机才报告。过程如下:

正常的任务/响应顺序被中断,响应数据报不再是对上一任务的响应,其ID被设为1001~1100(Parameter change report),改变的参数编号放在PNU中,数值放在PWE中,同时改变SP位(0→1或1→0)。主机接收后将SP置为与此响应数据报相同,作为确认消息发送给从机。从机不断发送同一参数改变报告,直到收到确认数据报后才恢复任务执行,或者如果还有其他参数改变,则发送下一个参数改变报告。

若是一个任务数据报同时改变了所有的参数值(IND=255),而从机只能发定长数据报时,响应帧中不发送改变后的参数值,只是置IND为255。

关于参数改变的例子请见第C-17页。

3.2.1.3 PNU:参数号

参数及其编号各种设备各不相同,需在手册中查找。

3.2.2IND索引

索引IND在如下任务中会被用到:

读写参数描述PBE;

读写数组中的值;

读写文本。

IND为1个字长,但只有0-7位才表示索引值。8、9位为读写文本扩展。

10-15位各种设备自定义。

详细使用情况见第C-19至C-22页。

3.2.3PWE 参数值

用以存放参数值,其长度和内容详见第C-23、24页。

4.PZD区

PZD区独立于PKW区,是有效数据的第二部分。PZD区的长度由PZD数据个数和大小(字,双字)决定。在控制面板上设定后PZD区长度即固定,但不超过16个字。也可以不传送PZD,则PZD长度设为0。

控制字和状态字总在PZD1,主要设定值和实时值在PZD2,其他控制字、状态字、设定值和实时值均在PZD3 - PZDn 。

控制字、状态字各位的意义见第C-27 ~ C-31页。

关于通信的例子见第C-38页。

西门子 PLC中OB、FC、FB、SFC、SFB中功能块

西门子 PLC中OB、FC、FB、SFC、SFB中功能块使用概述 (2013-12-05 16:13:52) S7-300/400PLC程序采用结构化程序,把程序分成多个模块,各模块完成相应的功能。结合起来就能实现一个复杂的控制系统。就像高级语言一样,用子程序实现特定的功能,再通过主程序调用各子程序,从而能实现复杂的程序。 在S7-300/400PLC中写在OB1模块里和程序就是主程序,子程序写在功能(FC),功能块(FB)。 FC运行是产生临时变量执行结束后数据就丢失-----不具有储存功能 FB运行时需要调用各种参数,于是就产生了背景数据块DB。例如用FB 41来作PID控制,则它的PID控制参数就要存在DB里面。FB具有储存功能系统功能块(SFB)和系统功能(SFC)也是相当于子程序,只不过SFB 和SFC是集成在S7 CPU中的功能块,用户能直接调用不需自已写程序。 SFC与FC不具有储存功能,FB和SFB具有储存功能。 OB模块相当于子程序,负责调用其他模块。如果程序简单只需要OB就可以实现。 用西门子PLC编程时,可以用到功能块FB和功能FC(FB、FC都是组织块)资料上说FB与FC都可以作为用户编写的子程序,但是我不明白这两个组织块之间到底有什么区别阿?在应用上到底有什么不同之处吗? FB--功能块,带背景数据块 FC--功能,相当于函数 他们之间的主要区别是:FC使用的是共享数据块,FB使用的是背景数据块 举个例子,如果您要对3个参数相同的电机进行控制,那么只需要使用FB编程外加3个背景数据块就可以了,但是,如果您使用FC,那么您需要不断的修改共享数据块,否则会导致数据丢失。FB确保了3个电机的参数互不干扰。 FB,FC本质都是一样的,都相当于子程序,可以被其他程序调用(也可以调用其他子程序)。他们的最大区别是,FB与DB配合使用,DB中保存着F B使用的数据,即使FB退出后也会一直保留。FC就没有一个永久的数据块来存放数据,只在运行期间会被分配一个临时的数据区。 在实际编程中,是使用FB还是FC,要看实际的需要决定。 FB与FC没有太大的差别,FB带有背景数据块,而FC没有。所以FB 带上不同的数据块,就可以带上不同的参数值。这样就可以用同一FB和不同的背景数据块,被多个对象调用。 FC和FB像C中的函数,只不过FB可以生成静态变量,在下次函数调用

热量表CJ128通讯协议

超声波热量表CJ128通讯协议 第一章通讯协议 1、通讯协议: z M_BUS通讯采用欧洲EN13757 M-BUS总线标准; z协议采用建设部CJ/T 188-2004《户用计量仪表数据传输技术条件》标准; 2、按抄表方式分为以下三种形式 2.1红外抄表功能 红外抄表-采用红外接收发送管,进行近距离通讯 介绍: z USB红外读表器-自制 z需要安装驱动 z USB红外读表器上有发射管(白),接收管(黑) z热量表上有接收管(黑),发射管(白) z两者发射对应接收在2厘米距离内抄表 z采用专用软件 2.2 485抄表功能 RS485抄表-利用RS485通讯硬件进行的4线制较远距离的串行通讯; 介绍: z232转485接口-可以买到 z总线4根电线-A、B、地、电源7-12V z热量表上有4根电线-A、B、地、电源7-12V z两者对应接好(分极性,接错可能烧毁) z在800米以内通讯 z最多64个终端 z采用专用软件 2.3 M_BUS抄表功能 M-BUS:Meter(仪表),BUS(总线) 是一种欧洲的2线制总线标准,是专门为消耗测量仪器和记数器传送信息而设计的数据总线标准,一种通讯线路,专门用于远程抄表的高可靠性、高速的远程抄表系统总线。 介绍: z M_BUS主机 z总线2根电线-A、B z热量表上有2根电线-A、B z两者对应接好(不分极性) z在4000米以内通讯 z最多200个终端 z采用专用抄表软件 第二章 热表上传数据格式 一、串口设置 波特率:2400bps 校验方式:偶校验 数据位:8位停止位:1位 数据发送方式:以16进制发送 二、热量表LCD显示表号 68 20 AA AA AA AA AA AA AA 1A 03 9A 4F 00 34 16 发送指令后表的液晶屏显示的号码为表号,一般和条形码号码一致,表号加上固定码001111就是表的地址。 在“瞬时”界面按住按钮8秒进入“A2”测试界面。点击按钮(在“A2”测试界面的“瞬时”后面一个界面,显示的8位数字就是表号)。 三、修改热量表表号 68 20 11 11 11 11 00 11 11 15 0A A0 18 AA 12 34 56 78 00 11 11 A5 16 修改前表号表号固定码修改后的表号表号固定码校验和 注:校验和(CS):在16进制下,从第一个字节累加至校验和字节前一位,然后取累加和低字节为校验和。 举例:在16进制下,68(H)+20(H)+11(H)+11(H)+11(H)+11(H)+00(H)+11(H)+11(H)+15(H)+0A(H)+A0(H)+18(H)+AA(H)+12(H)

关于西门子PLC的PPI通信协议的研究

关于西门子PLC的PPI通信协议的研究 摘要:本文结合西门子PLC的PPI通信协议的相关理论,主要研究了PPI协议的 通信过程、通信协议模型,并对PLC网络通信模式的构建进行了实例分析。 关键词:西门子PLC;PPI通信协议;通信程序 前言 PPI通信协议是一种特殊的通信协议,其协议本身是不公开的,只有西门子 S7-200的设备支持它。但掌握它也很重要,有时s7-200系列的设备之间只能通过PPI协议通信,例如上位机STEP7-Micro/WIN与S7-200PLC之间的基本通信;有 时只要通过一根电缆就可以实现S7-200PLC之间的简单通信,非常适用。但由于PPI通信协议不是公开的协议,因此一般现场设备是不支持的,限制了其作为标 准现场总线的应用,由此还需对协议内容、功能实现进行研究和分析。 1西门子PLC的PPI通信协议概述 1.1通信过程 在PPI网上,计算机与PLC通信,是采用主从方式,通信总是由计算机发起,PLC予以响应。具体过程如下: 1)计算机按通信任务,用一定格式,向PLC发送通信命令。 2)PLC收到命令后,进行命令校验,如校验后正确无误,则向计算机返回数 据E5H或F9H,作出初步应答。 3)计算机收到初步应答后,再向PLC发送SD(开始定界字符,为10H)、 DA(目标地址,即PLC地址02H)、SA(源地址,即计算机地址00H)、FC(功 能码,取5CH)、FCS(SA、DA、FC和的256余数,为5EH)、ED(结束分界符)确认命令。 如按以上设定的计算机及PLC地址,则发送10、02、00、5C、5E及16,6个字节的十六进制数据,以确认所发命令。 4)PLC收到此确认后,执行计算机所发送的通信命令,并向计算机返回相应 数据。 需要注意的是:如为读命令,情况将如上所述。但如为写或控制命令,PLC 收到后,经校验,如无误,一方面向计算机发送数据E5H,作出初步应答;另一 方面不需计算机确认,也将执行所发命令。但当收到计算机确认信息命令后,会 返回有关执行情况的信息代码[1]。 1.2 PPI协议模型 PPI通信协议的模型以OSI模型为基础,将其中的物理层、数据链路层和应用 层构成现场总线通信的三层模型,如表1所示。 其中PPI的应用层是通信模型的最高层,负责进行应用数据的读写操作。应用层是在数 据链路层之上的,接收数据链路层上传的数据,用来更新本站点的相关数据。当应用层需要 发送数据时,它只要将发送数据的目的站点、数据类型和数据本身等信息下载给数据链路层,由数据链路层去实现数据的发送。 PPI的数据链路层是位于通信模型的第2层,它介于物理层与应用层之间。一方面,它要 执行应用层的数据发送任务,生成数据和控制帧,并将这些帧下载给物理层,通过物理层实 现帧的发送;另一方面,数据链路层还要接收物理层的帧,根据帧进行校验等操作,若是数 据帧,则将其中的数据从帧中读出,上传给应用层。 一次数据写出操作的步骤包括:首先由本站(主站)向从站发出写入请求,从站作出正确接

嘉洁能485、MBUS超声热量表读表通信协议,标准国标mbus协议

超声波热量表通信协议 编号:RD-H10-00201 版本:01 一、通信设置 波特率:1200bps。 数据格式:1个起始位、8个数据位、1个校验位、1个停止位。 校验:偶校验。 二、帧格式 唤醒符:0~4个FE 表地址:低位在前,高位在后;全AA为广播地址。 数据长度:从数据标识开始到校验码之前的字节数(数据不超过44字节)。 校验码:从起始符开始到校验码之前所有数据十六进制累加和模100h 三、命令帧示例 ******************************************************************************* 1、读表:68 20 b6 b5 b4 b3 b2 b1 b0 01 03 90 1f 00 cs 16 应答:

度出水温度使用时间秒分时日月年表状态 ******************************************************************************* 例: 命令:6820267215111020000103901F002916 应答:FE FE FE FE 68 20 26 72 15 11 10 20 00 81 2E 90 1F 00 00 00 00 00 05 21 03 00 00 05 49 16 76 09 91 00 00 00 00 35 93 24 00 00 2C 48 16 B7 63 15 24 03 00 00 07 30 15 27 12 10 2000 00 F2 16 冷量:00000000 热量:00000321.1649 水量:00002493.910976 流速:0000.0000 进口温度:16.48 出口温度:15.63 使用时间:000003 日期:2010-12-27 15:30:07 状态:0000(BIT1表示欠压,BIT2标识日期出错,BIT9表示测量超时,BIT11温度传感器断路,BIT12温度传感器短路,其它位保留)。 其它位保留。 2、读地址:厂商代码是00H、20H 6820AAAAAAAAAAAAAA0103901F00E116

MODBUS_RTU 通讯协议(LCD热量表四万地址)

MODBUS_RTU 通讯协议 1、数据传输格式:1位起始位、8位数据位、1位停止位、无奇偶校验位。 2、仪表数据格式:2字节寄存器值=寄存器数高8位二进制数+寄存器低8位二进制数 3、仪表通讯帧格式: 读寄存器命令格式: 1 2 3 4 5 6 7~8 DE 3 起始寄存器高位起始寄存器低位寄存器数高位寄存器数低位CRC 注1:寄存器的起始地址从40000开始 应答: 1 2 3 4~5 6~7 …M*2+2~M*2+3 M*2+4~M*2+5 DE 3 字节计数M*2 寄存器数据1 寄存器数据2…寄存器数据M CRC DE: 设备地址 (1~200)单字节 CRC: 校验字节 采用CRC-16循环冗余错误校验 注2:寄存器数据为双字节,高位在前。 举例说明:(以LCD热量表为例) 1、MODBUS_RTU 通讯协议(十进制格式)以实际通讯数据内容为准 发送:1, 3, 156, 64, 0, 16, 107, 130, 回收:1, 3, 32, 10, 212, 128, 0, 10, 212, 128, 0, 136, 249, 240, 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 221, 仪表动态数据格式(MODBUS_RTU协议) 编号参数名称数据格式地址备注 1 第一路采样四字节浮点数 0000 2 第二路采样四字节浮点数 0002 3 第三路采样四字节浮点数 0004 4 瞬时值四字节浮点数 0006 5 瞬热值四字节浮点数 0008 因通讯是以秒为单位,故: 仪表实际值(单位:小时)=通讯采集值×3600 6 累计流量八字节浮点数 000A 7 累计热量八字节浮点数 000E 通讯将八字节分为前四字节和后四字节,故:仪表实际值=前四字节×100+后四字节 8 停电次数双字节定点数 0012 9 停电时间四字节浮点数 0013 10 报警状态双字节定点数 0015

S7200_PPI通信协议

S7-200 PPI通信协议 PPI通信协议是一种主从式的通信协议,上位机即PC机为主,PLC为从。通信开始由计算机发起,PLC予以响应。 1)、计算机按通信任务,用一定格式,向PLC发送通信命令。 2)、PLC收到命令后,进行命令校验,如无误,则向计算机发送数据E5H或F9H,作出初步应答。 3)、计算机收到初步应答后,再向PLC发送SD DA SA FC FCS ED确认命令。 这里,SD为起始字符,为10H;DA为目的,即PLC地址02H;SA为数据源,即计算机地址00H;FC为功能码,取5CH;FCS为SA、DA、FC和的256余数,为5EH;末字节ED为结束符,也是16H。如按以上设定的计算机及PLC地址,则发送10、02、00、5C、5E、及16,6个字节的十六进制数据,以确认所发命令。 4)、PLC收到此确认后,执行计算机所发送的通信命令,并向计算机返回相应数据。它的通信过程要往复两次才完成一次的通信,比较麻烦,但较严谨,不易出错。 SD LE LER SD DA SA FC DASP SSAP DU FCS ED SD:(Start Delimiter)开始定界符,占1字节,为68H LE:(Length)报文数据长度,占1字节,标明报文以字节计,从DA到DU的长度; LER:(Repeated Length)重复数据长度,同LE SD: (Start Delimiter)开始定界符(68H) DA:(Destination Address)目标地址,占1字节,指PLC在PPI上地址,一台PLC时,一般为02,多台PLC时,则各有各的地址; SA:(Source Address)源地址,占1字节,指计算机在PPI上地址,一般为00; FC:(Function Code)功能码,占1字节,6CH一般为读数据,7CH一般为写数据 DSAP:(Destination Service Access Point)目的服务存取点,占多个字节 SSAP:(Source Service Access Point)源服务存取点,占多个字节 DU:(Data Unit)数据单元,占多个字节

西门子PLC的几种编程语言

西门子PLC的几种编程语言 不同的商家的PLC有不同的编程语言,但就某个商家而言,PLC的编程语言也就那么几种。下面,以西门子PLC的编程语言为例,说明一下,各种编程语言的异同。 1、顺序功能图(SFC-Seauential Fuction Chart) 这是位于其它编程语言之上的图形语言,用来编程顺序控制的程序(如:机械手控制程序)。编写时,工艺过程被划分为若干个顺序出现的步,每步中包括控制输出的动作,从一步到另一步的转换由转换条件来控制,特别适合于生产制造过程。 西门子STEP7中的该编程语言是S7Graph。 2、梯形图(LAD-LAdder Diagram) 这是使用使用最多的PLC编程语言。因与继电器电路很相似,具有直观易懂的特点,很容易被熟悉继电器控制的电气人员所掌握,特别适合于数字量逻辑控制。 梯形图由触点、线圈和用方框表示的指令构成。触点代表逻辑输入条件,线圈代表逻辑运算结果,常用来控制的指示灯,开关和内部的标志位等。指令框用来表示定时器、计数器或数学运算等附加指令。 在程序中,最左边是主信号流,信号流总是从左向右流动的。 不适合于编写大型控制程序。 3、语句表(STL-STatement List) 是一种类似于微机汇编语言的一种文本编程语言,由多条语句组成一个程序段。语言表适合于经验丰富的程序员使用,可以实现某些梯形图不能实现的功能。 4、功能块图(FBD-Function Block Diagram) 功能块图使用类似于布尔代数的图形逻辑符号来表示控制逻辑,一些复杂的功能用指令框表示,适合于有数字电路基础的编程人员使用。功能块图用类似于与门、或门的框图来表示逻辑运算关系,方框的左侧为逻辑运算的输入变量,右侧为输出变量,输入、输出端的小圆圈表示“非”运算,方框用“导线”连在一起,信号自左向右。 5、结构化文本(ST-Structured Text) 结构化文本(ST)是为IEC61131-3标准创建的一种专用的高级编程语言。与梯形图相比,它实现复杂的数学运算,编写的程序非常简洁和紧凑。 STEP7的S7 SCL结构化控制语言,编程结构和C语言和Pascal语言相似,特别适合于习惯于使用高级语言编程的人使用。

CJ188通讯协议

光电直读仪表CJ-T188通讯规约 2016年2月

目录 第1章概述 (3) 第2章表计地址及数据编码格式 (4) 第3章数据传输协议 (6) 3.1读表计数据 (6) 3.2读表计地址 (7) 3.3设置表计地址 (9) 3.4写阀门控制 (11) 附录1测试报文 (14) 附录2M-bus接口 (15)

第1章概述 本规范是抄表系统下行接口的通讯协议(除少部分自定义部分外,均参照CJ/T 188-2004中华人民共和国城镇建设行业标准)。协议内容分为两层:控制帧、文件传输协议。网络拓扑图如下: 本协议为主-从模式的半双工通讯方式。集中器为主叫方,水、燃气等表计均为被叫方。每个水、燃气表计均有各自的地址编码。通讯链路的建立与解除均由主叫方来完成。 字节格式符合CJ/T188-2004标准字节格式,即每字节含8位二进制码,传输时加上 1 数据服务器WEB 方式数据管理系统 前端管理机 内部局域网 Internet 或内部局 域网 集团公司服务器 现场集中器 集团公司内网或Internet 收费票据打印 工作站 本通讯协议适用范围

位起始位(0)、一个偶校验位、一个停止位(1),共11位。 通讯波特率为2400bps。校验码(CS)符合CJ/T188-2004,即从起始符(0x68)开始到校验码之前的所有字节的和对256取模。 第2章表计数据编码格式说明 以下数据均为16进制表示,表计地址广播码为AA,主叫方在发送命令帧之前先发送3字节0xFE;在主叫方发出命令帧到表计应答时间<1秒,其它符合CJ/T188-2004。 2.1表类型T代码说明 冷水表为:10 热水表为:11 直饮水表为:12 热量表为:20 燃气表为:30 电表为:40 2.2表计地址ADDR编码格式(采用BCD码) A0:生产流水号最低字节; A1:生产流水号次高字节; A2:生产流水号最高字节; A3:表计生产月份; A4:表计生产年份; A5:生产厂商代码低字节; A6:生产厂商代码高字节; (以上的表计地址编码用户可自行定义,发送时低字节在前高字节在后) 2.3控制码CTR代码说明(表计回复CTR|+0x80) 主站(主叫方)发送从站(表计)回复 读表计数据01H81H 读表计地址03H83H 设置表计地址15H95H 控制阀门04H84H

Siemens PPI协议分析

Siemens PPI协议分析 大家好:我是山东临沂的郝金红,由于前段时间的疯狂的研究西门子PPI协议解密之故,所以无心插柳的研究出了较实用的西门子S7-200 PPI协议,今天奉献大家。我们经常要用于上位机、现场设备与S7-200CPU之间的通讯,但是西门子公司没有公布PPI协议的格式,用户如果想使用PPI协议监控,必须购买其监控产品或第三方厂家的组态软件。大家要知道国内的组态王、紫金桥、力控等等组态公司是花了多少钱才得到的PPI的深层协议吗?其实西门子工控产品的超高价垄断掠夺行为已经引起了我们国家及业内人士的抵制和抗议,他们的什么软件都需要授权且对于系统的霸道性是有目共睹的。 这样给用户自主开发就带来了一定的困难,特别是想用VB、VC等语言自行开发,根本没办法接入PLC,要么你大把掏钱给他们。洋为中用,最近在国外网站得到一个串口监视软件,带协议分析的相当不错,你吧!我就是通过此软件的数据监视、分析方法,找出了PPI协议的关键报文格式所在。 其实西门子S7-200 PLC之间或者PLC与PC之间通信有很多种方式:自由口,PPI方式,MPI方式,Profibus方式。使用自由口方式进行编程时,在上位机和PLC 中都要编写数据通信程序。使用PPI协议进行通信时,PLC可以不用编程,而且可读写所有数据区,快捷方便。这也是我们之所以要研究、找出PPI协议的源动力! 下面我们就要说说分析的方法了! 西门子的STEP 7 MicroWIN 是用于S7-200系列PLC的开发工具,它使用PC机上的COM口通过一条PC/PPI编程电缆连到PLC的编程口上。这说明,PC实际上是可以通过串口同S7-200 CPU通讯。只是我们不知道通讯协议而已。通过截获PC机串口上的收发数据,对照Step 7软件发出的指令,我们就有可能分析出有关指令的报文和通讯方式;然后,直接通过串口向PLC发送报文,以验证这些指令报文是否正确。本着这一思想,我们采用以下步骤获得这些报文。

西门子PLC-SIM使用说明

计算机仿真技术把现代仿真技术与计算机发展结合起来,通过建立系统的数学模型,以计算机为工具,以数值计算为手段,对存在的或设想中的系统进行实验研究。随着计算机技术的高速发展,仿真技术在自动控制、电气传动、机械制造等工程技术领域也得到了广泛应用。与传统的经验方法相比,计算机仿真的优点是: (1) 能提供整个计算机域内所有有关变量完整详尽的数据; (2) 可预测某特定工艺的变化过程和最终结果,使人们对过程变化规律有深入的了解; (3) 在测量方法有困难情况下是唯一的研究方法。此外,数字仿真还具有高效率、高精度等优点。 大型企业每年都需要对电气控制人员进行技术培训,每次培训都需要大量的准备工作,购买大量各种不同类型PLC、变频器、接触器、电缆等。如果采用传统的经验方法:购买大量的控制器件,特别PLC、变频器等器件昂贵,很容易造成浪费;此外需要专门的培训地点。所以,如果对控制人员进行技术培训能够采用计算机仿真技术,能极大地降低成本。 S7-PLCSIM Simulating Modules由西门子公司推出,可以替代西门子硬件PLC的仿真软件,当培训人员设计好控制程序后,无须PLC硬件支持,可以直接调用仿真软件来验证。 2 S7-PLCSIM软件的功能 (1) 模拟PLC的寄存器。可以模拟512个计时器(T0-T511);可以模拟131072位(二进制)M寄存器;可以模拟131072位I/O寄存器;可以模拟4095个数据块;2048个功能块(FBs)和功能(FCs);本地数据堆栈64K字节;66 个系统功能块 (SFB0-SFB65);128个系统功能(SFC0-SFB127);123个组织块(OB0-OB122)。(2) 对硬件进行诊断。对于CPU,还可以显示其操作方式,如图1示。SF(system fault)表示系统报警;DP (distributed peripherals, or remote I/O)表示总线或远程模块报警;DC(power supply) 表示CPU有直流24伏供给;RUN 表示系统在运行状态;STOP表示系统在停止状态。 图1 CPU的操作方式 (3) 对变量进行监控。用菜单命令Insert>input variable监控输入变 量;Insert>output variable监控输出变量,Insert>memory variable监控内部变量;Insert>timer variable监控定时器变量;Insert>counter variable监控计数器变量。图2表示上述变量表。这些变量可以用二进制、十进制、十六进制

Mbus表计通信协议

表计通信协议 一、字符格式 1个停止位,8位数据,无校验,1位停止位 二、桢格式 2、 0X10-0X19水表,分别为: 0X10→冷水水表 0X11→生活热水水表 0X12→直饮水水表 0X13→中水水表 0X20-0X29热量表,分别为: 0X20→热量表,计热类 0X21→热量表,计冷类 0X30-0X39燃气表,分别为: 0X30→燃气表 0X40-0X49其它仪表,分别为: 0X40电度表。 3、地址域 4字节,十六进制码格式,00000000-FFFFFFFF共4G个地址,其中FFFFFFFF为广播设置地址,用于设置表计地址或者读表计地址,其他地址用于表计地址编码。 4、命令码 D7=方向控制,D7=0表示主站发出的数据,D7=1表示表计发出的数据。 D6-D0构成命令码 三、通信交互过程 1、问答式规约 任何一次通信必须有主站发起,表计应答结束。 2、表计的正确应答,ACK 当表计接收到主站发出的设置类、控制类命令并且能够正确执行时回复ACK

3、表计的错误应答,ERR 当表计接收到正确的数据桢但是执行错误时发错误应答桢ERR 1=数据保存出错,当接收到设置类命令时,表计把设置数据写入非易失存储器,并且读出数据进行校验,如果写非易失存储器失败,则返回错误代码=1的ERR桢 2=执行开阀门失败,如果表计收到开阀命令,并且执行该命令,如果阀门有到位检测但检测失败则返回错误代码=2的ERR桢 3=执行关阀门失败,如果表计收到关阀命令,并且执行该命令,如果阀门有到位检测但检测失败则返回错误代码=3的ERR桢 4、超时处理 如果表计收到错误的数据桢,则不作任何处理和应答,主站通过超时来判断数据通信失败。 四、命令桢 1、读数据命令READ,CMD = 0X01

西门子PLC考试试题库完整

西门子PLC考试题库 一、选择题 1.MW0是位存储器中的第1个字,MW4是位存储器中的第(C ) 个字。 A.1 B.2 C.3 D.4 2.WORD(字)是16位 ( B ) 符号数,INT(整数)是16位 ( ) 符号数。 A.无,无 B.无,有 C. 有,无 D.有,有 3. ( D ) 是MD100中最低的8位对应的字节。 A.MB100 B.MB101 C. MB102 D.MB103 4.PLC在线状态下,在变量表(VAT)窗口,单击图标( D)可以每个扫描周期都刷新变量。A.监视 B.离线 C. 强制 D.变量触发 5.图标表示( A ) 。 A.可以刷新变量一次 B.可以每个扫描周期刷新变量一次 C.可以激活修改的值一次 D.每个扫描周期激活修改值 6.“S5T#5s_200ms”表示( A ) 。 A.16位S5TIME型数据 B.16位TIME型数据 C.32位S5TIME型数据 D.32位TIME型数据 7.“TOD#21:23:45.12”表示( D ) 。 A.16位TIME型数据 B.16位TIME-OF-DAY型数据 C.32位TIME型数据 D.32位TIME-OF-DAY型数据 8.S7系列PLC的状态字(STW)中,表示逻辑运算结果的是( B )。 A. RF B.RLO C. STA D.BR 9.S7系列PLC的状态字(STW)的( D )位与指令框的使能输出ENO的状态相同。 A. RF B.RLO C. OR D.BR 10.不能以位为单位存取的存储区是( D )。 A.输入映像 B.输出映像 C.内部存储器 D.外设I/O区 11.下列输出模块可以交直流两用的是( B ) A. 光电耦合输出模块 B. 继电器输出模块 C. 晶体管输出模块 D. 晶闸管输出模块 12.输入采样阶段,PLC的CPU对各输入端子进行扫描,将输入信号送入 C 。 A. 外部I存储器(PI) B. 累加器(ACCU) C. 输入映像寄存器(PII) D. 数据块(DB/DI) 13.每一个PLC控制系统必须有一台 A ,才能正常工作。 A. CPU模块 B. 扩展模块 C. 通信处理器 D. 编程器 14.S7-300 PLC通电后,CPU面板上“BATF”指示灯亮,表示 B 。 A. 程序出错 B. 电压低 C. 输入模块故障 D. 输出模块故障 15.S7-300 PLC驱动的执行元件不工作,PLC的CPU面板上指示灯均正常,而输入、输出指示灯不亮,这时可判断故障出在 C 。 A. 程序错误 B. CPU模块上 C. 输入线路上 D. 输出线路上 16.S7-300/400 PLC在启动时要调用的组织块是 D 。 A. OB1 B. OB35 C. OB82 D. OB 100 16.S7-300 PLC可以扩展多达 B 个机架,个模块。 A. 1,7 B. 4,32 C. 4,44 D. 21,300 17.背板总线集成在模块内的S7系列PLC是 C 。

MPI协议和PPI协议有什么不同

竭诚为您提供优质文档/双击可除MPI协议和PPI协议有什么不同 篇一:通讯不同点 请教下大虾们,常说的总线有profibus、can、modbus、FF、devicenet等,这些是不是以走什么协议来命名的?那 我可以说:“它走can协议吗?”而常见的串口通信modbus,mpi, 据校验和。 在波特率一致、各站地址不同的情况下,ppi,mpi和pRoFibus可以同时在一个网络上运行,并且互不干扰。 这就是说如果一个网络上有s7-300、s7-200,s7-300 之间可以通过mpi或pRoFibus通信,而在同时在同一个网 络上的tp170如果在一个通信网络上存在其他主站(如td200,或者上位计算机等),同时需要进行micro/win的编程、监控,这就是多主站网络编程。 使用西门子的下列设备可以实现micro/win的多主站编程: micro触摸屏可以与一个s7-200cpu通信。 使用智能多主站电缆和micro/winV3.2sp4以上版本。

新电缆可以在网络上传递令牌,因而自动支持多主站网络编程。 如果使用cp卡,如cp5511/cp5512(笔记本电脑pcmcia 卡)、cp5611(台式机pci卡),能够支持多主站编程通信。 如果通过cp卡编程时,选择了mpi协议,注意mpi主站不能访问作为ppi主站的cpu。如果有第三方的产品要连接到多主站网络上,用户需要咨询第三方产品提供商以了解是否支持西门子的s7-200多主站网络。要进行多主站编程,不但编程计算机要支持,网上的其他设备也要有多主站通信能力。 早期的多主站连接依赖于计算机硬件和windows操作系统。随着计算机技术的发展,多数情况下已经不能做到多主站编程通信。建议用户使用西门子的多主站编程电缆或者cp 卡配合micro/win实现多主站编程通信。 4.mpi(multipointinterface)是simatics7多点通信的接口,是一种适用于少数站点间通信的网络,多用于连接上位机和少量plc之间近距离通信。 通过pRoFibus电缆和接头,将控制器s7-300或s7-400的cpu自带的mpi编程口及s7-200cpu自带的ppi通信口相互连接,以及与上位机网卡的编程口(mpi/dp口)通过pRoFibus或mpi电缆连接即可实现。网络中当然也可以不包括pc机而只包括plc。

捷先数码CJ188通讯协议V1.1(1)

捷先数码光电直读仪表 CJ-T188通讯规约V1.1 深圳捷先数码科技有限公司 2013年10月 U n R e g i s t e r e d

目 录 第1章 概述………………………………………………………………………… 3 第2章 表计地址及数据编码格式………………………………………………… 4 第3章 数据传输协议……………………………………………………………… 5 3.1 读表计数据 (5) 3.2 读表计地址........................................................................... 6 3.3 设置表计地址 (8) 3.4 写阀门控制 (10) 附录 测试报文 (13) U n R e g i s t e r e d

第1章 概述 本规范是捷先数码专线抄表系统下行接口的通讯协议(除少部分自定义部分外,均参照CJ/T 188-2004 中华人民共和国城镇建设行业标准)。协议内容分为两层:控制帧、文件传输协议。网络拓扑图如下: 本协议为主-从模式的半双工通讯方式。集中器为主叫方,水、燃气等表计均为被叫方。 每个水、燃气表计均有各自的地址编码。通讯链路的建立与解除均由主叫方来完成。 现场集中器 e d

字节格式符合CJ/T188-2004标准字节格式,即每字节含8位二进制码,传输时加上1位起始位(0)、一个偶校验位、一个停止位(1),共11位。 通讯波特率为2400bps。校验码(CS)符合CJ/T188-2004,即从起始符(0x68)开始到校验码之前的所有字节的和对256取模。 第2章 表计数据编码格式说明 以下数据均为16进制表示,表计地址广播码为AA,主叫方在发送命令帧之前先发送3字节0xFE;在主叫方发出命令帧到表计应答时间<1秒,其它符合CJ/T188-2004。 2.1表类型T 代码说明 冷水表为: 10 热水表为: 11 直饮水表为:12 热量表为: 20 燃气表为: 30 电表为: 40 2.2表计地址ADDR 编码格式(采用BCD 码) A0:生产流水号最低字节; A1:生产流水号次高字节; A2:生产流水号最高字节; A3:表计生产月份; A4:表计生产年份; A5:生产厂商代码低字节; A6:生产厂商代码高字节; (以上的表计地址编码用户可自行定义,发送时低字节在前高字节在后) 2.3制码CTR 代码说明(表计回复 CTR|0x80) 主叫方读表计数据:01 表计回复:81 主叫方读表计地址:03 表计回复:83 主叫方设置表计地址: 15 表计回复:95 主叫方控制阀门:2A 表计回复:AA U n R e g i s t e r e d

西门子PPI通讯协议

?西门子PPI通讯协议!看看吧! S7-200?PLC之PPI协议? ????通过硬件和软件侦听的方法,分析PLC内部固有的PPI通讯协议,然后上位机采用VB 编程,遵循PPI通讯协议,读写PLC数据,实现人机操作任务。这种通讯方法,与一般的自由通讯协议相比,省略了PLC的通讯程序编写,只需编写上位机的通讯程序资源 S7-226的编程口物理层为RS-485结构,SIEMENS提供MicroWin软件,采用的是PPI(Point?to?Point)协议,可以用来传输、调试PLC程序。在现场应用中,当需要PLC与上位机通讯时,较多的使用自定义协议与上位机通讯。在这种通讯方式中,需要编程者首先定义自己的自由通讯格式,在PLC中编写代码,利用中断方式控制通讯端口的数据收发。采用这种方式,PLC编程调试较为烦琐,占用PLC的软件中断和代码资源,而且当PLC的通讯口定义为自由通讯口时,PLC的编程软件无法对PLC进行监控,给PLC程序调试带来不便。SIEMENS?S7-200PLC的编程通讯接口,内部固化的通讯协议为PPI协议,如果上位机遵循PPI 协议来读写PLC,就可以省略编写PLC的通讯代码。如何获得PPI协议?可以在PLC的编程软件读写PLC数据时,利用第三个串口侦听PLC的通讯数据,或者利用软件方法,截取已经打开且正在通讯的端口的数据,然后归纳总结,解析出PPI协议的数据读写报文。这样,上位机遵循PPI协议,就可以便利的读写PLC内部的数据,实现上位机的人机操作功能。 软件设计 ?系统中测控任务由SIEMENS?S7-226PLC完成,PLC采用循环扫描方式工作,当定时时间到时,执行数据采集或PID控制任务,完成现场的信号控制。计算机的监控软件采用VB编制,利用MSComm控件完成串口数据通讯,通讯遵循的协议为PPI协议。 ?PPI协议 西门子的PPI(Point?to?Point)通讯协议采用主从式的通讯方式,一次读写操作的步骤包括:首先上位机发出读写命令,PLC作出接收正确的响应,上位机接到此响应则发出确认申请命令,PLC则完成正确的读写响应,回应给上位机数据。这样收发两次数据,完成一次数据的读写[5]。 其通讯数据报文格式大致有以下几类: 1、读写申请的数据格式如下: ? SD?LE?LER?SD?DA?SA?FC?DASP?SSAP?DU?FCS?ED?? SD:(Start?Delimiter)开始定界符(68H) LE:(Length)报文数据长度 LER:(Repeated?Length)重复数据长度 SD:?(Start?Delimiter)开始定界符(68H) SA:(Source?Address)源地址,指该地址的指针,为地址值乘以8 DA:(Destination?Address)目标地址,指该地址的指针,为地址值乘以8 FC:(Function?Code)功能码 DSAP:(Destination?Service?Access?Point)目的服务存取点 SSAP:(Source?Service?Access?Point)源服务存取点 DU:(Data?Unit)数据单元 FCS:(Frame?Check?Sequence)校验码 ED:(End?Delimiter)结束分界符(16H) 报文数据长度和重复数据长度为自DA至DU的数据长度,校验码为DA至DU数据的和校验,只取其中的末字节值。 在读写PLC的变量数据中,读数据的功能码为?6CH,写数据的功能码为?7CH。

热量表抄表通讯协议(超声、机械)

本公司热能表通讯协议符合CJ-T188-2004户用计量仪表数据传输技术条件 传输时波特率为2400bps、偶校验、数据位为8位、停止位为1位。同一字节先传低位再传高位,同一帧先传低字节再传高字节。 举例如下(十六进制显示): 表号为17312151的热能表读表指令: FE FE FE FE FE FE FE FE FE FE FE 68 20 51 21 31 17 00 11 11 01 03 1F 90 12 29 16 68 为帧起始符 68H 20 为仪表类型 T 51 为地址A0 21 为地址A1 31 为地址A2 17 为地址A3(A0、A1、A2、A3为要读取的热量表的表号,从低位到高位) 00 为地址A4 11 为地址A5 11 为地址A6 01 为控制码 C 03 为数据长度域 L 1F 为数据标识DI0 90 为数据标识DI1 12 为序列号SER 29 为校验码CS(68 20 51 21 31 17 00 11 11 01 03 1F 90 12进行二进制算术累加,不 计超过FFH的溢出值) 16 为结束符 16H 其中除A0、A1、A2、A3、CS根据不同的表号变化,其它固定不变。 热能表正常应答返回数据为: FE FE FE FE FE FE FE FE FE FE FE 68 20 51 21 31 17 00 11 11 81 2E 1F 90 12 00 00 00 00 05 00 00 00 00 05 00 00 00 00 14 00 00 00 00 35 19 00 00 00 2C 76 30 00 68 30 00 73 02 00 32 41 11 12 09 07 20 04 00 E9 16 68 为帧起始符 68H 20 为仪表类型 T 51 为地址A0 21 为地址A1 31 为地址A2 17 为地址A3(A0、A1、A2、A3为读到的热量表的表号,从低位到高位) 00 为地址A4 11 为地址A5 11 为地址A6 81 为控制码 C 2E 为数据长度域 L(1F 90 12 00 00 00 00 05 00 00 00 00 05 00 00 00 00 14 00 00

(完整版)西门子S7-1200PLC的IEC格式的定时器属于功能块介绍

西门子S7-1200PLC的IEC格式的定时器属于功能块。在插入定时器指令时,要求创建一个16字节的IEC_Timer数据类型的DB结构(即背景数据块),来保存有关的数据。在功能块中,可以事先创建一个 IEC_Timer数据类型的静态变量(多重背景),然后将它指定给定时器指令。 CPU没有给任何特定的定时器指令分配专门的资源。每个定时器使用DB结构和一个连续运行的内部CPU定时器(我的理解是一个硬件定时器)来执行定时。 在定时器指令的输入IN的上升沿启动定时器时,连续运行的内部CPU定时器的值将被复制到为该定时器指令分配的DB结构的元素START(起始值)中。 该起始值在定时器继续运行期间将保持不变,以后将在每次更新定时器时使用。以下条件时将会执行定时器更新: 1)执行定时器指令(TP、TON、TOF 或 TONR); 2)定时器结构的元素ELAPSED(经过的时间)或位输出Q作为其它指令的参数,该指令被执行。 更新定时器时,将从内部CPU定时器的当前值中减去上述起始值,得到经过的时间ELAPSED。再将ELAPSED与预设值PT进行比较,以确定

定时器的位输出Q的状态。然后更新该定时器的DB结构的元素ELAPSED 和Q。达到预设值PT后,定时器不会继续累加经过的时间ELAPSED。 STEP 7 Basic的V11版与V10.5版相比,增加了类似于S7-300/400的定时器线圈指令。 从上述的定时器内部的定时机制可知,在使用定时器时,其定时精度与CPU的扫描周期有很大的关系。在CPU两次更新定时器之间,定时器的输入、输出参数保持不变。 为了验证上述结论,在FB1中调用定时器指令TP,在OB1中用I0.1作为调用条件,调用FB1。用监视表格监视定时器的输出Q和经过的时间ET,用输入IN的上升沿启动定时器后,如果I0.1为0状态,没有调用FB1和执行定时器指令,定时器的输出Q和经过的时间ET保持不变。只有在调用FB1,执行定时器指令时,ET的值才会变化。 北京天拓四方科技有限公司

SiemensPPI协议分析

编号:_______________本资料为word版本,可以直接编辑和打印,感谢您的下载 SiemensPPI协议分析 甲方:___________________ 乙方:___________________ 日期:___________________

大家好:我是山东临沂的郝金红,由丁前段时间的疯狂的研究西门子PPI协议解密之故,所以无心插柳的研究出了较实用的西门子S7-200 PPI协议,今天奉献大家。我们经常要用丁上位机、现场设备与S7-200CP比问的通讯,但是西门子公司没有公布PPI协议的格式,用户如果想使用PPI协议监控,必须购买其监控产品或第三方厂家的组态软件。大家要知道国内的组态王、紫金桥、力控等等组态公司是花了多少钱才得到的PPI的深层协议吗?其实西门子工控产品的超高价垄断掠夺行为已经引起了我们国家及业内人士的抵制和抗议,他们的什么软件都 需要授权且对丁系统的霸道性是有目共睹的。 这样给用户自主开发就带来了一定的困难,特别是想用VB VCC?语言自行开发,根本没办法接入PLC要么你大把掏钱给他们。洋为中用,最近在国外网站得到一个申口监视软件,带协议分析的相当不错,你'下裁吧!我就是通过此软件的数据监视、分析方法,找出了PPI协议的关键报文格式所在。 其实西门子S7-200 PLC之间或者PL必P&问通信有很多种方式:自由口, PPI方式,MP方式,Profibus方式。使用自由口方式进行编程时,在上位机和PLC 中都要编写数据通信程序。使用PPI协议进行通信时,PLW以不用编程,而且可读写所有数据区,快捷方便。这也是我们之所以要研究、找出PPI协议的源动力! 卜面我们就要说说分析的方法了! 西门子的STEP 7 MicroWIN是用丁S7-200系列PLC勺开发工具,它使用PCL上的COI^通过一条PC/PPI编程电缆连到PLC勺编程口上。这说明,PCS际上是可以通过申口同S7-200 CPIffl讯。只是我们不知道通讯协议而已。通过截获PO申口上的收发数据,对照Step 7软件发出的指令,我们就有可能分析出有关指令的报文和通讯方式;然后,直接通过申口向PLCCc送报文,以验证这些指令报文是否正确。本着这一思想,我们采用以下步骤获得这些报文。 你首先下载上面那个英文的申口监控软件,英文不好的网友可以使用我们为你汉化的汉化包,替换原文件即可,你必须使用这个软件,因为我先前使用过很多的监控软件,在收发数据很多的情况下都有死机现象,造成数据丢失,容易给

相关主题