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

西门子PLC自由通信协议

----在自由口模式下,通信协议是由用户定义的。用户可以用梯形图程序调用接收中断、发送中断、发送指令(XMT)、接受指令(RCV)来控制通信操作。在自由口模式下,通信协议完全由梯形图程序控制。

指令格式定义

计算机每次发送一个33字节长的指令来实现一次读/写操作,指令格式见表1 说明:

起始字符

----起始字符标志着指令的开始,在本例中被定义为ASCII码的“g”,不同的PLC从站可以定义不同的起始字符以接收真对该PLC的指令。

指令类型

----该字节用来标志指令的类型,在本例中05H代表读操作,06H代表写操作。

目标西门子PLC站地址

----目标PLC站地址占用指令的B2、B3两个字节,以十六进制ASCII码的格式表示目标西门子PLC的站地址。

目标寄存器地址

----在西门子PLC内部可以用4个字节来表示一个寄存器的地址(但不能表示一个位地址)。前两个字节表示寄存器类型,后两个字节表示寄存器号。

读/写字节数M

----当读西门子plc的命令时,始终读回从目标寄存器开始的连续8个字节的数据(转换为十六进制ASCII码后占用16个字节),可以根据自己的需要取用,M可以任意写入。

----当写命令时,M表示的是要写入数据的十六进制ASCII码所占用的字节数。例如要写入1个字节的数据,数据在指令中以十六进制ASCII码表示,它将

占用2个字节,此时应向M中写入“02”。同理,如果要写入5个字节的数据,M中应写入“0A”。

要写入的数据

----要写入西门子plc的数据在指令中以十六进制ASCII码的格式表示,占用指令的

B14-B29共16个字节。数据区必须填满,但只有前M个字节的数据会被写入目标寄存器。一条指令最多可以写入8个字节的数据(此时M中应写入“10”,代表十进制的16)

艾驰商城是国内最专业的MRO工业品网购平台,正品现货、优势价格、迅捷配送,是一站式采购的工业品商城!具有 10年工业用品电子商务领域研究,以强大的信息通道建设的优势,以及依托线下贸易交易市场在工业用品行业上游供应链的整合能力,为广大的用户提供了传感器、图尔克传感器、变频器、断路器、继电器、PLC、工控机、仪器仪表、气缸、五金工具、伺服电机、劳保用品等一系列自动化的工控产品。

如需进一步了解相关PLC产品的选型,报价,采购,参数,图片,批发等信息,请关注艾驰商城http://biz.doczj.com/doc/5015550678.html,。

热量表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

西门子S7—200PLC自由口通讯的两种Delphi实现方法

西门子S7—200PLC自由口通讯的两种Delphi实现方法 【摘要】本文介绍了PC机与PLC实现自由口通信的两种方法。上位机采用的是PC机,利用Delphi6.0编写应用程序,详细对其中的两种方式做了详细说明。下位机采用西门子公司的S7-200PLC,文中列出了相应的程序说明。 【关键词】计算机通信;PLC;Delphi;自由口通信 1.引言 随着大规模和超大规模集成电路等微电子技术的迅猛发展,PLC作为一种新型高能的控制器已经越来越广泛地用于工业现场控制的各个领域,它有着高可靠性、低能耗、易操作、易安装等优点。但是,由于PLC的人机交互能力差,独立的PLC不能完成工业控制流程的实时和动态监控,PC机与PLC的通讯就愈加显得重要。通过PLC与PC机的通讯,使得个人计算机和其他智能控制设备交换数字信息,使系统形成一个统一的整体,方便实现分散控制和集中管理。 2.S7-200的通信与PC机的通信机理 S7-200 PLC的CPU支持多种通信协议,包括:点到点接口协议(PPI)、多点接口协议(MPI)、Profibus协议、自由通信接口协议和USS协议。自由通讯口模式是S7-200PLC一个很有特色的功能,用户可以通过用户程序对通信口进行操作并且自己定义通信协议。应用该通信方式,S7-200可以方便地和任何通信协议已知、具有串口的智能设备和控制器进行通信。 通过设定特殊存储字节SMB30(端口0)或SMB130(端口1)允许自由口模式,设置它的波特率、奇偶校验和数据位数。用发送指令(XMT)和接收指令(RCV)对数据进行通信操作。值得注意的一点是:只有在CPU处于RUN 模式时才允许自由口模式,当CPU处于STOP模式时自由口模式将自动转换为PPI协议模式。用反应CPU模块上的工作方式的特殊存储器位SM0.7来控制自由口通讯方式的进入,当SM0.7为1时CPU处于RUN模式,可将通信口置为自由口模式。 在PC机与PLC的通讯过程中,主要是由PC机发送信息来强制控制PLC 的状态,接收PLC发送过来的信息来显示控制状态。PLC发送信息通过检测SM4.5来每半分钟发送有关PLC状态的信息,以使PC机信息更新。 3.下位机(PLC)实现 对PLC的通信编程就是对串口进行设置。当CPU处于RUN模式时,进行自由口通信。 3.1 端口的初始化

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)数据单元,占多个字节

S7_200PLC与PC自由口通讯的多种实现方法

S7-200PLC与PC自由口通讯的多种实现方法 1 引言 西门子S7-200PLC是德国西门子公司生产小型PLC。S7-200以其高可靠性、指令丰富、内置功能丰富、强劲通讯能力、较高性价比等特点,工业控制领域中被广泛应用。S7-200PLC突出特点之一是自由口通讯功能。如何实现 S7-200PLC与个人计算机互联通信,是S7-200PLC应用技术关键。 可编程控制器与计算机之间通讯一般是RS-422口或RS-232C口进行,信息交换方式为字符串方式,运用RS-232C或RS-422通道,容易配置一个与计算机进行通信系统,将所有软元件数据和状态用可编程控制器送入计算机,由计算机采集这些数据,进行分析及运行状态监测。用计算机改变可编程控制器设备初始值和设定值,实现计算机与可编程控制器直接控制,一旦确定了可编程控制器控制指令,就能很方便与计算机连接。 2 S7-200自由口通讯模式 S7-200支持多种通讯模式,如点点接口(PPI)、多点接口(MPI)、Rrofibus DP等。PPI等通讯协议主要用于西门子系列产品之间通讯以及对PLC编程。自由口模式下,可由用户控制串行通讯接口,实现用户自定义通讯协议。用户可以用梯形图程序调用接收中断、发送中断、发送指令(XMT)、接受指令(RCV)来控制通信操作。自由口模式下,通信协议完全由梯形图程序控制。

S7-200CPU上通信口是与RS-485兼容9针D型连接器,PLC还提供了实现RS-485与PC机上RS-232C相连接PC/PPI电缆,利用它可以方便实现S7-200系列PLC与PC之间硬件连接。 S7-200编程软件为STEP7-Micro/WIN32,该软件有STL、FBD和Ladder三种编程模式,有SIMATIC指令和IEC131-3指令两种指令。本文所给出范例是使用SIMATIC指令STL编程。 3 S7-200 PLC端通讯程序实现 PLC程序分为主程序和中断程序。主程序完成初始化通信口、开中断、判断、发送数据等功能,中断程序完成接收和发送数据功能。接收指令(RCV)启动或终止接收信息功能,必须为接收操作指定开始和结束条件。发送指令(XMT)自由口模式下依靠通讯口发送数据。 3.1 控制字选取 反映CPU工作方式模式开关当前位置特殊存储器位为SM0.7,它控制自由端口模式进入。当SM0.7为0时,模式开关处于TREM位置;当SM0.7为1时模式开关处于RUN位置。而当模式开关位于RUN位置时,才允许进行自由口通讯。SMB30是自由口模式控制字节,用来设定校验方式、通讯协议、波特率等通讯参数(其它控制字设定参阅有关书籍)。 3.2 程序一些简单介绍 NETWORK1

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发送报文,以验证这些指令报文是否正确。本着这一思想,我们采用以下步骤获得这些报文。

西门子自由口通讯

一、串口特性设置 SMB30: ppdb bbmm pp:奇偶校验选择,00=不校验,01=偶校验,10=不校验,11=奇校验; d:每个字符的数据位,0=8位/字符,1=7位/字符; bbb:自由口通讯波特率(bit/s) 000=38400,001=19200,010=9600,011=4800,100=2400,101=1200,110=115.2K,111=57.6K;mm:协议选择,00=PPI/从站模式,01=自由端口协议,10=PPI/主站模式,11=保留(默认设置为00=PPI/从站模式); 二、报文接收的状态字 SMB86:nre0 0tcp; n=1:通过用户禁止命令终止报文接收。 r=1:接收报文终止,输入参数错误或无起始或结束条件。 e=1:收到结束字符。 c=1:接收报文终止,超出最大字符数。 t=1:接收报文终止,超时。 p=1:接收报文终止,奇偶校验错误。 三、报文接收的控制字 SMB87:报文接收的控制字,en,sc,ec,il c/m,tmr,bk,0; en:0=禁止报文接收,1=允许报文接收,每次执行RCV指令时检查允许/禁止接收报文位。sc:0=忽略SMB188,1=使用SM1B188的值检查报文的开始。 ec:0=忽略SM189,1=使用SM189的值检查报文的结束。 il:0=忽略SMW190,1=使用SMW190的值检测空闲状态。 c/m:0=定时器是字符间超时定时器,1=定时器是报文定时器。 tmr:0=忽略SMW192,1=超过SMW192中设置的时间时终止接收。 bk:0=忽略break(间断)条件,1=用break条件来检测报文的开始。 报文接收控制字节位用来定义识别报文的标准,报文的起始和结束标准均需定义。 SMB88=报文的起始字符 SMB89=报文的结束字符 SMW90=以ms为单位的空闲线时间间隔。空闲线时间结束后接收到的第一个字符是最新报文的起始字符。 SMW92=字符间/报文间定时值(用ms表示),如果超时停止接收报文。 SMW94=接收最大字符数(1-255),即使不用字符数计算来终止报文,这个值也应按希望的最大缓冲区来设置 四、接收指令的参数设置 RCV指令允许选择报文开始和结束的条件,SMB86-SMB94用于端口0,SMB186-SMB194用于端口1。

如何实现S7200SMART自由口通讯

如何实现S7-200SMART自由口通讯 自由口通讯协议的关键条件 定义开始接收消息和停止接收消息的条件。 1、空闲线检测:设置il=1,sc=0,bk=0,smw90/smw190>0 空闲线条件定义为传输线路上的安静或者空闲的时间。SMW90/SMW190中是以ms为单位的空闲时间。在该方式下,从执行接收指令开始起动空闲时间检测。在传输线空闲的时间大于等于SMW90/SMW190中设定的时间之后接收的第一个字符作为新信息的起始字符。接收消息功能将会忽略在空闲时间到达之前接收到的任何字符,并会在每个字符后面重新启动空闲线定时器。 空闲线时间应大于以指定波特率传送一个字符所需要的时间。空闲线时间的典型为以指定的波特率传送3个字符所需要的时间。传输速率为19200bit/s时候,可设置空闲时间为2ms。对于二进制协议,没有特定起始字符的协议或指定了消息之间最小时间间隔的协议,可以将空闲线检测用作开始条件。 2、起始字符检测:设置il=0,sc=1,bk=0,忽略smw90/smw190 起始字符是消息的第一个字符,以SMB88/SMB188中的起始字符作为接收到的消息开始的标志。接收消息功能忽略起始字符之前收到的字符,起始字符和起始字符之后收到的所有字符都存储在消息缓冲区中。起始字符检测一般用于ASCII协议。 3、空闲线和起始字符:设置il=1,sc=1,bk=0,SMW90/SMW190大于0 满足空闲线条件之后,接收消息功能查找指定的起始字符。如果接收到的字符不是 smB88/smb188指定的起始字符,将开始重新检测空闲线条件。在满足空闲线条件之前接收到的以及起始字符之前接收到的字符都将会被忽略。这种方式尤其适合用于通讯链路上有多台设备的情况。 4 、break检测:设置il=0,sc=0,bk=1,检测smw90/smw190和smb88/smb188以接收到的break(断开)作为接收消息的开始。当接收到的数据保持为0的时间大于完整字符(包含起始位,数据位,奇偶校验位和停止位)传输的时间,表示检测到break。断开条件之前接收到的字符将忽略,断开条件之后接收到的任意字符都会存储在消息缓冲区中。 5、break和起始字符:il=0,sc=1,bk=1,忽略smw90/smw190 断开条件满足后,接收消息功能将查找指定的起始字符。如果接收到的字符不是起始字符,将重新搜索断开条件。所有在断开条件满足之前在接收到起始字符之前接收的字符都会忽略。起始字符和所有后续字符一起存入消息缓冲区 6、任何字符开始接受:设置il=1,sc=0,bk=0,smw90/smw190=0 忽略smb88/smb188中的起始字符。应为smw90/smw190中的空闲线时间为0,接收指令已经执行,便将立即开始强制接收所有的任意字符,并将存入消息缓冲区。 7、任意字符开始,消息定时器超过则结束接收消息:令il = 1,sc = 0,bk = 0,smw90/smw190 = 0,忽略smb88/smb188中的起始字符。以上设置用于实现从任意字符开始接收消息。 此外设置c/m = 1,tmr =1,用smw92/smw192设置以ms为单位的消息超时时间,用消息定时器监视接收是否超时。如果未满足其他结束条件,在消息定时器超时的时候,将会终止接收消息功能。这对自由口协议的主站是非常有用的。 1.SMB30定义 定义通讯的传输速度和模式 SMB30=16#05=2# 00 0 001 01

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

西门子S7-200自由口通信心得

西门子S7-200 PLC自由口通信学习摘要 本文以s7-200 PLC与智能电表通信为范例(电表波特率为1200bps,偶校验,8位数据位) 一、PLC自由口协议初始化 1、根据智能设备通信时使用的波特率、校验方式、起始位等参数配置PLC自由口,即将上述参数用MOVB指令写入SMB30,SMB30格式如下图所示: 初始化子程序如下:

二、声明中断 发送数据和接收完数据都能链接到中断程序,发送完中断与接收完中断的中断号分别为9和23,中断可在初始化子程序中声明

三、编写自由口要发送的报文子程序 严格按智能设备报文格式,将相应命令,将指令长度(字节)MOV到任意的字节单元,例如vb10。再用MOV_B或MOV_W等指令传送到vb11开始后连续的字节中。 报文子程序

上图为读取电表标识编码为9010(即正向有功总电能)的指令 四、用XMT指令发送报文 XMT指令需指定两个参数,第一个为要发送的报文的起始地址(本例为VB10),第二个为使用的通信口(本例为0口)。可以用定时器控制某一CPU内部触点来控制报文发送的周期。要注意的是,XMT指令必须用上升沿“—|P|—”触发,否则CPU将会报错,CPU将认为有多个XMT/RCV指令同时执行,这是不允许的! 发送报文子程序 五、利用发送完中断启动接收数据指令 当报文用XMT发送完毕,会产生9号中断。我们可以利用中断子程序捕捉相应的中断,并在中断程序中编写相应事件!在步骤1中已经声明了9号中断连接到中断子程序“发送完中断”。因为此我们在“发送完中断”中断子程序中使用RCV指令即可接收到由通信口返回的数据。即将数据送到VB100. “发送完中断”中断子程序

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。

西门子S7-200 自由口通信实用文档

主题:应用探讨—S7-200 自由口通信—发帖整理 强大而灵活的自由口通信能力,是S7-200系统的一个重要特点。S7-200 CPU 的RS485通信口提供了建立在串行通信基础上的“自由”通信能力,数据传输协议完全由用户程序决定。通过自由口方式,S7-200可以与串行打印机、条码阅读器等通信。而S7-200的编程软件也提供了一些通信协议库,如USS协议库和MODBUS RTU从站协议库,它们实际上也使用了自由口通信功能。 开设本话题的目的,在于澄清自由口通信的基本概念,强调使用中的要点,讨论应用的常见问题。经过此次集中交流,解决了如下一些问题: 1. 自由口通信基本概念 2. 自由口通信编程指令的使用和技巧 3. 自由口通信常见问题 4. 产品功能建议 更多信息请参考下面文档。 “下载中心”参考文档: 文档编号“1109582”——S7-200《可编程控制器系统手册》 文档编号“A0136”——《西门子 S7-200?LOGO!?SITOP参考》 以下为本次探讨的发帖整理,查看原始交流内容请点击此处。 1.自由口通信基本概念(1楼——5楼) 2.自由口通信编程指令的使用和技巧(6楼——15楼) 3.自由口通信容易犯的错误(16楼——24楼) 4.产品功能建议(25楼——27楼)

quote: 以下是引用BABU在2011-01-20 15:17:08的发言: 我回来了,项目终于做完了,可以回家过年了,:)。 自由口通信真是折腾的我好惨啊,简单回顾一下,希望对像我这样的菜鸟有些借鉴作用。 先感谢一下西门子论坛和热线,没少骚扰他们。 在完全没有准备的情况下甲方又加进一个仪表,做什么自有口通信,晕阿!没办法,迎着上吧! 网上搜资料,看手册,越看越糊涂!时间紧迫,还是直接上手做吧。 首先是把PLC和仪表连接起来,可仪表的口是rs232的,热线工程师告诉我得做rs232/485的转换,打车到市场上买个转换器(打车钱比设备钱还多,可见现场多么偏僻阿),听卖转换器的老板给我分析了一下每种的区别——不光是价格的区别,说实在的,当时非常惭愧,老板懂的比我多多了。 买回来后自己动手焊线,一个人费了九牛二虎之力,焊的那个惨样就不用说了,还好有壳可以包装一下。 焊好了,实验一下效果吧,不知到怎么做了,打电话。 热线工程师告诉我找个串口调试工具,连接到pc机上测试。 在串口调试工具上发一串数,在200上收,ok!高兴坏了,没白忙活。 硬件上应该没问题了,接下来开始做程序了。 先得理解仪表的协议,弄清了仪表先要收到请求数据的命令,然后根据命令做出响应。 同样,先用串口调试工具和仪表连接进行通信测试,还算聪明吧,:)! 然后开始在200里编写收发程序,开始时整个思路都是乱的,无从下手。就把200手册上的例子程序整个抄上,在cpu224的两个接口间进行通信实验。 经过不停的实验,终于一点一点地理解了控制字节、控制参数的含义,怎么设置接收结束条件,怎么使用中断、怎么控制接收和发送等等。

捷先数码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。

西门子PLC自由通信协议

----在自由口模式下,通信协议是由用户定义的。用户可以用梯形图程序调用接收中断、发送中断、发送指令(XMT)、接受指令(RCV)来控制通信操作。在自由口模式下,通信协议完全由梯形图程序控制。 指令格式定义 计算机每次发送一个33字节长的指令来实现一次读/写操作,指令格式见表1 说明: 起始字符 ----起始字符标志着指令的开始,在本例中被定义为ASCII码的“g”,不同的PLC从站可以定义不同的起始字符以接收真对该PLC的指令。 指令类型 ----该字节用来标志指令的类型,在本例中05H代表读操作,06H代表写操作。 目标西门子PLC站地址 ----目标PLC站地址占用指令的B2、B3两个字节,以十六进制ASCII码的格式表示目标西门子PLC的站地址。 目标寄存器地址 ----在西门子PLC内部可以用4个字节来表示一个寄存器的地址(但不能表示一个位地址)。前两个字节表示寄存器类型,后两个字节表示寄存器号。 读/写字节数M ----当读西门子plc的命令时,始终读回从目标寄存器开始的连续8个字节的数据(转换为十六进制ASCII码后占用16个字节),可以根据自己的需要取用,M可以任意写入。 ----当写命令时,M表示的是要写入数据的十六进制ASCII码所占用的字节数。例如要写入1个字节的数据,数据在指令中以十六进制ASCII码表示,它将

占用2个字节,此时应向M中写入“02”。同理,如果要写入5个字节的数据,M中应写入“0A”。 要写入的数据 ----要写入西门子plc的数据在指令中以十六进制ASCII码的格式表示,占用指令的 B14-B29共16个字节。数据区必须填满,但只有前M个字节的数据会被写入目标寄存器。一条指令最多可以写入8个字节的数据(此时M中应写入“10”,代表十进制的16) 艾驰商城是国内最专业的MRO工业品网购平台,正品现货、优势价格、迅捷配送,是一站式采购的工业品商城!具有 10年工业用品电子商务领域研究,以强大的信息通道建设的优势,以及依托线下贸易交易市场在工业用品行业上游供应链的整合能力,为广大的用户提供了传感器、图尔克传感器、变频器、断路器、继电器、PLC、工控机、仪器仪表、气缸、五金工具、伺服电机、劳保用品等一系列自动化的工控产品。 如需进一步了解相关PLC产品的选型,报价,采购,参数,图片,批发等信息,请关注艾驰商城http://biz.doczj.com/doc/5015550678.html,。

相关主题