西门子自由口通讯

合集下载

西门子 S7-1500 CM PtP RS232 与 MV340 自由口通信说明书

西门子 S7-1500 CM PtP RS232 与 MV340 自由口通信说明书

10/CN/view/zh/105640826C o p y r i g h t ãS i e m e n s A G C o p y r i g h t y e a r A l l r i g h t s r e s e r v e d 目录1任务概述................................................................................................................. 31.1 S7-1500 CM PtP 通信模块概要 . (3)1.2 MV340信息 (3)1.3示例方案 (4)2接口与连接 (4)2.1S7-1500CM PtP 接口 (4)2.2MV340 RS232电缆 (5)3 MV340通信设置 (5)4 TIA Portal V13项目组态 (6)4.1创建项目并组态模块 (6)4.2设备组态 (7)5编程测试 (10)5.1通信程序 (10)5.2简单测试 (12)6 CM PtP 错误诊断 (13)6.1通过模块上的 LED 指示灯 (14)6.2通过程序块错误代码 (14)C o p y r i g h t ãS i e m e n s A G C o p y r i g h t y e a r A l l r i g h t s r e s e r v e d SIMATIC S7-1500或ET200MP 自动化系统包含各种应用模块,其中包括通信模块。

串行通信模块通过点对点连接,提供了简单的数据交换功能。

本例以S7-1500串口通信模块CM PtP RS232 HF ,与手持读码器MV340自由口通信为例,简单介绍西门子串口通讯模块的使用方法。

1.1 S7-1500 CM PtP 通信模块概要S7-1500或 ER200MP CM PtP 串行通信模块产品有如下几种。

西门子—自由口通讯知识

西门子—自由口通讯知识

西门子—自由口通讯知识(总14页)-CAL-FENGHAI.-(YICAI)-Company One1-CAL-本页仅作为文档封面,使用请直接删除S7-200系列自由口通讯的实现及应用1 引言为了达到和通讯协议已知的控制设备进行数据交换,以提高自动化控制系统的灵活性,很多plc制造商都相继的开发出了方便、灵活的自由口通讯方式,例如三菱公司的fx 2系列plc, omron公司的cjm1系列的plc,西门子公司的s7-200系列plc等都提供了自由口通讯模式。

自由口通讯是指plc提供了串行的通讯硬件,和用于定制通讯协议的相关指令,在控制系统中,当要和plc连接的控制设备的通讯协议已知时,可以在plc中进行编程定制通讯协议,和控制设备进行数据通讯。

本文主要介绍西门子s7-200的自由口和计算机的串口进行的通讯,计算机中采用visual basic进行编程,从而实现计算机与可编程控制器的直接控制。

该通讯方式具有效率高、容易实现、通讯硬件简单、容易配置等特点在工业控制领域中被广泛应用。

2 s7-200通讯指令及特殊字节采用自由口通讯方式时,s7-200上的rs485口完全由用户控制,可以与任何协议已知的设备进行通讯,在这种情况下通讯协议完全由用户制定,为此,s7-200提供了用于进行通讯协议定制的特殊标志位以及相关的通讯指令。

特殊标志字节s7-200用于自由口通讯模式定义的特殊标志字节有smb30和smb130,smb30用于s 7-200的端口0的通讯,smb130用于s7-200的端口1的通讯,两者的格式一样,下面我们以smb130为例,介绍其组成。

smb130各位的含义如下:pp:两位用于选择通讯的校验方式当这两位的组合是:00无校验 01 偶校验 10 无校验 11 奇校验d:这一位用于选择通讯的数据位数 d=1时7个数据位,d=0时8个数据位bbb:用于选择自由口通讯是的波特率,这三位的组合和通讯波特率的关系如下: 000 ——38400bps001 ——19200bps010 ——9600bps011 ——4800bps100 ——2400bps101 ——1200bps110 —— 600 bps111 —— 300 bpsmm: 用于通讯协议的选择,当这两位的组合是:00 ppi从站模式 01 自由口通讯模式 10 ppi主站模式接收信息的状态字节s7-200在自由口通讯时用于接受信息的状态有smb86和smb186,smb86用于s7-20 0的端口0的通讯,smb186用于s7-200的端口1的通讯,两者的格式一样,下面我们以s mb186为例,介绍其组成。

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

西门子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的转换,打车到市场上买个转换器(打车钱比设备钱还多,可见现场多么偏僻阿),听卖转换器的老板给我分析了一下每种的区别——不光是价格的区别,说实在的,当时非常惭愧,老板懂的比我多多了。

西门子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与计算机的串口通信

自由口模式下西门子PLC与计算机的串口通信
NETWORK 2
LD SM0.0
//RCV指令初始化
MOVB 16#EC, SMB87
MOVB 103, SMB88
MOVB 71, SMB89
MOVB +1000, SMW92
MOVB 35, SMB94
R SM87.2, 1
NETWORK 3
LD SM0.0
由于RS-485为半双工电气标准硬件电路,在用PC/PPI电缆时,发送和接收之间要有一定的时间间隔,这是由电缆本身的切换时间决定的,否则就会出现XMT/RCV冲突现象。因此,收发使能的控制切换需延时(尽管短),且通信协议(底层)一般也要求收发之间有间隔,以便正确判断传送数据的正确性。采取的措施:在发送前允许发送中断,在发送完成中断程序中关闭发送中断,延时启动接收中断,并在接收完成中断中关闭接收中断。根据经验,如果用9600波特率的话最短时间间隔至少要50ms以上,否则可能会造成数据的丢失。但我们发现,在发送完成后将自定义的标志位置位,检测到标志位上跳沿的首次扫描执行一遍RCV,即使不加发送延时也不会造成数据丢失。
S7-200系列PLC的通信口分3种工作方式:
l PPI(Point2to2Point Interface)方式;
l 自由口通信(Freeport)方式;
l PROFIBU S2DP方式。
本文主要介绍PLC的自由口通信方式。自由口通信方式是一种通讯协议完全开放的工作方式, 如果说PPI方式是外设适应PLC的话, 那么自由口通信方式就是PLC适应外设。在自由口通信方式下外设不受PPI协议的限制,不支持PPI协议的设备也能够与S7-200系列PLC通讯, 在自由口通信方式下通讯口的协议由外设决定, PLC通过程序来适应外设。自由口通信方式是对PPI方式的一个补充,该方式使得S7-200系列PLC可以与任何具有通讯能力的、并且协议公开的设备相通讯。

西门子PLC 自由口通讯

西门子PLC 自由口通讯

1.自由口通讯基本概念1.1 自由口通信概述1.2 自由口通信要点1.3 发送和接收指令2.自由口通信使用指南2.1 通讯口初始化2.2 发送数据:2.3 接收数据2.4 自由口通信例程1.自由口通讯基本概念1.1 自由口通信概述S7-200PLC的通讯口支持RS485接口标准。

采用正负两根信号线作为传输线路。

工作模式采用串行半双工形式,在任意时刻只允许由一方发送数据,另一方接收数据。

数据传输采用异步方式,传输的单位是字符,收发双方以预先约定的传输速率,在时钟的作用下,传送这个字符中的每一位。

传输速率可以设置为1200、2400、4800、9600、19200、38400、57600、115200。

字符帧格式为一个起始位、7或8个数据位、一个奇/偶校验位或者无校验位、一个停止位。

字符传输从最低位开始,空闲线高电平、起始位低电平、停止位高电平。

字符传输时间取决于波特率。

数据发送可以是连续的也可以是断续的。

所谓连续的数据发送,是指在一个字符格式的停止位之后,立即发送下一个字符的起始位,之间没有空闲线时间。

而断续的数据发送,是指当一个字符帧发送后,总线维持空闲的状态,新字符起始位可以在任意时刻开始发送,即上一个字符的停止位和下一个字符的起始位之间有空闲线状态。

示例:用PLC连续的发送两个字符(16#55和16#EE)(程序如图3和图4),通过示波器测量CPU通讯端口管脚3/8之间的电压,波形如下图1.:图1.两个字符(16#55和16#EE)的波形图示例说明:16进制的16#55换算成2进制等于2#01010101,16进制的16#EE换算成2进制等于2#11101110。

如图所示,当数据线上没有字符发送时总线处于空闲状态(高电平),当PLC发送第一个字符16#55时,先发送该字符帧的起始位(低电平),再发送它的8个数据位,依次从数据位的最低位开始发送(分别为1、0、1、0、1、0、1、0),接着发送校验位(高电平或低电平或无)和停止位(高电平)。

西门子S7-1200与第三方设备自由口通信详解

西门子S7-1200与第三方设备自由口通信详解

西门子S7-1200与第三方设备自由口通信详解西门子S7-1200 紧凑型PLC在当前的市场中有着广泛的应用,由于其性价比高,所以常被用作小型自动化控制设备的控制器,这也使得它经常与第三方的设备(扫描枪、打印机等设备进行通讯。

因为没有第三方的设备,这里就以超级终端为例介绍自由口通讯。

1.控制系统原理图1:控制系统原理2.硬件需求S7-1200 PLC目前有3种类型的CPU:1)S7-1211C CPU。

2)S7-1212C CPU。

3)S7-1214C CPU。

这三种类型的CPU都可以连接三个串口通信模版。

本例中使用的PLC硬件为:1)PM1207电源 ( 6EP1 332-1SH71 )2) S7-1214C ( 6ES7 214 -1BE30 -0XB0 )3) CM1241 RS232 ( 6ES7 241 -1AH30 -0XB0 )3.软件需求1) 编程软件 Step7 Basic V10.5 ( 6ES7 822-0AA0-0YA0)4.组态我们通过下述的实际操作来介绍如何在Step7 Basic V10.5 中组态S7-1214C 和超级终端通信。

点击桌面上的“Totally Integrated Automation Portal V10”图标,打开如下图:图2:新建S7 -1200项目首先需要选择“Create new project”选项,然后在“Project name:”里输入PTP;在“Path:”修改项目的存储路径为“C:\”;点击“Create”,这样就创建了一个文件PTP的新项目。

创建后的窗口如下图所示:图3:新建项目后点击门户视图左下角的“Project View”切换到项目视图下,如下图:图4:切换到项目视图打开后,在“Devices”标签下,点击“Add new device”,在弹出的菜单中输入设备名“PLC_1”并在设备列表里选择CPU的类型。

选择后如下图:图5:PLC硬件组态插入CPU后,点击CPU左边的空槽,在右边的“Catalog ”里找到“Communication”下的RS232模块,拖拽或双击此模块,这样就把串口模块插入到硬件配置里,接下来就需要配置此RS232模块硬件接口参数,选择RS232模块,在其下方会出现该模块的硬件属性配置窗口,在属性窗口里有两个选项,一个是“general”;一个是“RS232 interface”。

S7-200(SMART)的自由口通信运用的经历

S7-200(SMART)的自由口通信运用的经历

S7-200(SMART)的自由口通信运用的经历初次试探自由口通信,从PLC读仪表数据开始,当时有一套比较老的设备,仪表是国外的,自定义的协议,国内集成商可能是仪表和接口板卡开发比较熟悉,或许是为了满足客户不同的PLC品牌需求,没有采用PLC和仪表直接通信,而是做了一块接口板,接口板和PLC之间采用数字量模式(对于PLC一侧DI 1 / DO 8+3+1+1),接口板和仪表之间采用RS232C通信。

PLC8个输出点相当于并口,3个输出点相当于读写参数编号,1个读写指令点,1个高低位指令点。

一同事有点高级语言的底子,用VB作了一个简单的读参数测试,可以接收到消息串。

于是本人饶有兴趣想试试PLC直接和仪表进行通信,翻看仪表的自定义协议,信息帧均是有指定的起始符和结束符,后面没有校验字符,现在回忆当时情况感觉还是有点幸运,如果校验复杂一点,可能就失去了继续深入的耐性了。

对照S7-200的系统手册,看XMT和RCV的指令介绍,当时对于通信指令和中断指令都不甚明了,需要一点点尝试,终于有点眉目,能够成功的读取一个参数,后来在慢慢的加入逻辑,读取多个参数,对于RCV接收机制和指令使用太过生疏,加上对中断也没有深入的概念,容易出现断线且无法恢复,后来逐渐加了一些重发之类的逻辑,形成了一个逻辑繁琐可读性极差的初级版本。

后来有一个需求,有用户使用了多套年岁较高的纺织机械,之前用的是西门子变频器和S7-200,西门子变频器老型号停产,需要更换新的型号,因为是基于通信给定频率,即使是更换西门子的新型号,也需要变动PLC频率给定部分的程序,用户干脆在一台机器上换了富士的变频器,找厂家改动了程序,后来有某国产变频器经销商想说服用户更换他家的变频器,用户答应给试机的机会,不过需要经销商来适配PLC程序,经过辗转,一同学找我给点建议,本人对通信的经验实在是可怜,不敢乱说,只能说程序是可以适配,但水平有限,经验不够,还是另找高手实施。

西门子S7-200自由口与上位机通讯实例

西门子S7-200自由口与上位机通讯实例

西门子S7-200自由口与上位机通讯实例西门子S7-200自由口与上位机通讯实例S7-200自由口与上位机通讯读取温度值的程序PLC主程序网络1// 设置控制方式为自由口通信方式,启动接收字符中断// PLC首次扫描自由口通信,波特率为9600,数据位8,停止位1,无校验初始化RCV,允许RCV,有结束符,检查空闲时间结束符为A空闲时间为5MS一次接收的最大字符为6个启动通信口,接收完成中断全局允许中断接收数据LD SM0.1MOVB 16#09, SMB30MOVB 16#B0, SMB87MOVB 16#0A, SMB89MOVB 6, SMB94ATCH INT_0, 23ENIRCV VB199, 0网络2// 检测温度送VW0 //转换成实际温度值从工作站编号送到输出缓冲区检测温度送输出缓冲区LD SM0.0MOVW AIW0, VW0/I +54, VW0MOVW AIW2, VW2/I +54, VW2MOVW 1, VW300MOVW VW0, VW302MOVW VW2, VW304网络3// 设置温度控制上限和下限//LD SM0.0MOVW +350, VW4MOVW +450, VW6网络4// 检测温度低于下限,则输出加温// LDW< VW0, VW4A SM0.5S Q0.0, 1网络5// 检测温度高于上限,则输出降温// LDW> VW0, VW6A SM0.5R Q0.0, 1网络6//准备传送参数//发送字节数据,送VB99发送检测温度数据,送VW100发送工作站编号数据,送VW102 LD SM0.0MOVB 6, VB99MOVW VW300, VW100MOVW VW302, VW102MOVW VW304, VW104网络7// 传送数据//LD SM0.5XMT VB99, 0中断程序网络1//通信口接收数据完成后的中断//// SMB86 等于16#20,表示PLC收到结速符//收到结束符,把收到的数据传到VB400中断有条件返回否则继续接收LDB= SMB86, 16#20MOVB VB200, VB400CRETINOTRCV VB199, 0\\*******************************\\VB源程序Dim x1, k1, k2Dim p11, p22 '定义变量Dim aa() As Byte '定义数组Private Sub Command1_Click() '开始监控,定时器1有效Timer1.Enabled = TrueEnd SubPrivate Sub Command2_Click() '退事程序,定时器1无效Timer1.Enabled = FalseCls '清屏Unload MePrivate Sub Form_Load() '初始化Timer1.Enabled = False '定时器1无效Timer1.Interval = 100 '定时器1时间为0.1STimer2.Enabled = True '定时器2有效Timer2.Interval = 1000 '定时器2时间为1SPicture1.ScaleMode = 0 '定义纵横坐标/doc/073575364.html,mPort = 1 '设定端口号MSComm1.Settings = "9600,n,8,1" '设定通讯波特率MSComm1.InputLen = 6 '输入缓冲区为6个字符MSComm1.InBufferSize = 256 '接收缓冲器大小MSComm1.OutBufferSize = 256 '输出缓冲器大小MSComm1.InputMode = comInputModeBinary '以二进制传输MSComm1.OutBufferCount = 0 '清空发送缓冲区MSComm1.InBufferCount = 0 '清空接收缓冲区End SubPrivate Sub Timer1_Timer() '定时器1有效,触发接收事件MSComm1.PortOpen = True '打开端口ReDim aa(0 To 5) '定义动态数组k1 = 0 '识别PLC站号,为1If k1 = 0 Then MSComm1.Output = "1" + Chr(10) + Chr(13) '发送Do While MSComm1.InBufferCount = 0 '准备接收数据Loopaa = MSComm1.Input '接收数据存入数组If aa(0) > 64 Then GoTo xxx:k2 = Int(aa(0) * 255 + aa(1) * 1)Select Case k2p11 = Int(aa(2) * 255 + aa(3) * 1)p22 = Int(aa(4) * 255 + aa(5) * 1)Case ElseEnd Selectk1 = k1 + 1If k1 > 2 Then k1 = 0xxx:MSComm1.PortOpen = FalseEnd SubPrivate Sub Timer2_Timer() '绘制各中频炉的温度曲线x1 = x1 + 1 '时间增加为1SPicture1.PSet (x1, p11), vbRed '绘制1#炉的温度曲线,为红色Picture1.PSet (x1, p22), vbBlue '绘制2#炉的温度曲线,为黄色Text1.Text = Str(p11) '输出1#炉温度值Text2.Text = Str(p22) '输出2#炉温度值Text3.Text = Str(x1) '输出监控时间。

西门子S7-200PLC如何通过自由口通信控制变频器运行

西门子S7-200PLC如何通过自由口通信控制变频器运行

西门子S7-200PLC如何通过自由口通信控制变频器运行一、S7-200如何通过自由口通信控制西门子变频器的运行1、西门子变频器的通信协议是固定的。

如A、A′格式。

控制电机的启停用A′格式,要改变变频器的运行频率,使用A格式。

2、S7-200PLC根据西门子变频器的通信协议,通过自由口发送数据到变频器中,实现对西门子变频器的正转、反转、停止及修改运行输出频率。

二、西门子变频器通信协议总和校验计算:频率值对应的ASCII码:频率数据内容H0000~H2EE0变成十进制即为0~120Hz,最小单位为0.01Hz。

如现在要表示数据10Hz,即为1000(单位为0.01Hz),1000转换成十六进制为H03E8,再转换成ASCII码为H30H33H45H38。

总和校验代码总和校验代码是由被检验的ASCII码数据的总和(二进制)的最低一个字节(8位)表示的2个ASCII码数字(十六进制)三、S7-200自由口通信1、通信端口控制字节2、发送指令XMT与接收指令RCV说明:(1)发送与接收指令可以方便地发送或接收最多255个字节的数据。

(2)PORT指定发送或接收的端口。

(3)TBL指定发送或接收数据缓冲区,第一个数据指定发送或接收的字节数。

(4)发送完成时可以调用中断,接收完成时也可调用中断.四、项目实现用S7-200PLC自由口通信方式控制西门子变频器,拖动电机正转启动与停止,并能改变变频器的运行频率。

设变频器站号为1.正转启动的代码是:H05H30H31H46H41H31H30H32H38H31停止的代码是:H05H30H31H46H41H31H30H30H37H46把变频器运行输出频率改为20Hz的代码是:H05H30H31H45H44H31H30H30H31H04H42H351、设置变频器参数2、编写PLC自由口通信控制程序总结:1、作自由口通信时,一定要先研究要通讯设备的通信协议和数据格式。

2、作自由口通信时,如果要求PLC既发送数据,又接收数据。

超详细讲解PLC自由口通讯——以S7-200为例。

超详细讲解PLC自由口通讯——以S7-200为例。

超详细讲解PLC自由口通讯——以S7-200为例。

展开全文主要内容:•S7-200 PLC串口通讯概览•S7-200 PLC自由口通讯基础•S7-200 PLC自由口通讯指令•S7-200 PLC自由口通讯常问问题(1)概览S7-200串口通讯主要包括:1)Modbus—S7-200PLC与支持Modbus RTU协议的第三方设备通讯•RTU Master-Protocol(RTU主站协议)•RTU Slave-Protocol(RTU从站协议)2)USS—S7-200PLC与SIEMENS驱动设备的通讯(如MM440等)3)自由口通讯—S7-200PLC与自由协议的第三方设备间的通讯S7-200系列PLC可以方便地同计算机、打印机、变频器、扫描仪等其它的第三方设备进行无障碍通讯。

Modbus通讯和USS通讯是自由口通讯的特例。

对于S7-200系列的PLC而言,本体上存在着一个或两个485通讯接口,这种接口即可实现S7-200串口通讯的功能,这类串口既可以做编程和监控,也可以做自由口通讯。

但在其运行自由口通讯程序时,无法对其进行监控。

这是因为对于同一个口而言在同一个时刻只能支持一种协议,而编程与下载的协议对于S7-200PLC而言是PPI协议,所以一旦在程序运行过程中使得它做自由口通讯的状态则无法对其监控和下载。

下表是Modbus、USS以及自由口通讯的一些参数:对于OSI七层模型而言,Modbus通讯、USS通讯和自由口通讯所处的位置可从上图中看到。

(2)自由口通讯•S7-200 CPU的通信口可以设置为自由口模式。

选择自由口模式后,用户程序就可以完全控制通信端口的控制,通信协议也完全受用户程序控制。

•所谓的自由口通讯,就是通讯协议是由用户自由定义的。

•对于S7-200 PLC而言,基于本体自带的485端口的网络所应用的协议,除了PPI协议以外,其他都是自由口协议。

例如USS协议、Modbus协议等等都是特定的自由口通讯协议。

实测:西门子200PLC和组态王自由口通信

实测:西门子200PLC和组态王自由口通信

实测:西门子200PLC和组态王自由口通信这几天测试西门子200PLC和组态王自由口方式进行通信。

因为以前没做过这方面的通信,组态王也只熟悉一点,所以网上找点资料看看。

原以为很简单的通信,感觉就是触摸屏和PLC通信那样,简单配置一下参数:地址、波特率等。

现在看来还真是差不多,只是要看的资料很多,结合起来看,弄清楚两者之间的通信协议。

明白之后就很简单。

整理下测试程序和大家分享下,欢迎指导,学习,分享。

(1)下图是西门子200PLC编程软件的通信端口设置:和组态王里面设置要一致;(2)下图是PLC编程,需要下载亚控的一个初始化程序。

测试程序如下:测试地址如下:(3)下图是组态王操作:和PLC中的一致:数据词典的操作定义变量:测试画面制作:(4)下图是两者通信的截图:(5)总结组态王和200PLC之间协议选取其中一点,这个没怎么看懂,欢迎大家指导。

上位机发送读指令:BYTE1: PLC地址 (1~255)BYTE2: 0x00 (读指令代码)BYTE3: 寄存器类型(0-V, 1-Q, 2-I)BYTE4-5: 起始偏移地址(0-9999)BYTE6: 数据个数(1~32 n)BYTE7: 数据类型(1,2,4 m)BYTE8-11: 保留BYTE12: 校验字节PLC应答:读成功时:BYTE1: PLC地址 (1~255)BYTE2: 0x00 (读指令代码)BYTE3: 寄存器类型(0-V, 1-Q, 2-I)BYTE4-5: 起始偏移地址(0-9999)BYTE6: 数据个数(1~32 n)BYTE7: 数据类型(1,2,4 m)BYTE8-n*m+8: 数据BYTEn*m+9: 校验字节MAINLD SM0.1CALL SBR_0:SBR0 //初始化子程序LD SM0.7= SM30.0SBR_0:初始化子程序SUBROUTINE COMMENTS Press F1 for help and example programLD SM0.0MOVW +2, VW8 //PLC自由口地址,此处每台机器需设不同的地址LD SM0.0MOVB 9, SMB30 //通讯参数,波特率9600,自由口通讯MOVD &VB100, VD40// VB100:接收缓冲区的首字节MOVW +10, VW54// VW54:存放发送数据按字节异或校验的次数,10次校验完已//接收了11个字节了,最后一个12号字节是校验。

西门子—自由口通讯知识

西门子—自由口通讯知识

S7-200系列自由口通讯的实现及应用1? 引言??? 为了达到和通讯协议已知的控制设备进行数据交换,以提高自动化控制系统的灵活性,很多plc制造商都相继的开发出了方便、灵活的自由口通讯方式,例如三菱公司的fx2系列plc,omron公司的cjm1系列的plc,西门子公司的s7-200系列plc等都提供了自由口通讯模式。

自由口通讯是指plc提供了串行的通讯硬件,和用于定制通讯协议的相关指令,在控制系统中,当要和plc连接的控制设备的通讯协议已知时,可以在plc中进行编程定制通讯协议,和控制设备进行数据通讯。

本文主要介绍西门子s7-200的自由口和计算机的串口进行的通讯,计算机中采用visual basic进行编程,从而实现计算机与可编程控制器的直接控制。

该通讯方式具有效率高、容易实现、通讯硬件简单、容易配置等特点在工业控制领域中被广泛应用。

2? s7-200通讯指令及特殊字节??? 采用自由口通讯方式时,s7-200上的rs485口完全由用户控制,可以与任何协议已知的设备进行通讯,在这种情况下通讯协议完全由用户制定,为此,s7-200提供了用于进行通讯协议定制的特殊标志位以及相关的通讯指令。

2.1 特殊标志字节??? s7-200用于自由口通讯模式定义的特殊标志字节有smb30和smb130,smb30用于s7-200的端口0的通讯,smb130用于s7-200的端口1的通讯,两者的格式一样,下面我们以smb130为例,介绍其组成。

smb130各位的含义如下:??? pp:两位用于选择通讯的校验方式? 当这两位的组合是:???? 00无校验? 01 偶校验? 10 无校验? 11 奇校验??? d:这一位用于选择通讯的数据位数? d=1时7个数据位,d=0时8个数据位??? bbb:用于选择自由口通讯是的波特率,这三位的组合和通讯波特率的关系如下:??? 000 ——38400bps????? 001 ——19200bps????? 010 ——9600bps?????? 011 ——4800bps???? 100 ——2400bps????? 101 ——1200bps????? 110 ——600? bps?????? 111 ——300? bps???? mm: 用于通讯协议的选择,当这两位的组合是:??? 00? ppi从站模式?? 01 自由口通讯模式? 10? ppi主站模式2.2 接收信息的状态字节??? s7-200在自由口通讯时用于接受信息的状态有smb86和smb186,smb86用于s7-200的端口0的通讯,smb186用于s7-200的端口1的通讯,两者的格式一样,下面我们以smb186为例,介绍其组成。

西门子S7-200自由口协议

西门子S7-200自由口协议

西门子S7-200自由口协议关于自由口通讯协议此协议为亚控公司为实现组态王与德国西门子公司SIMATIC S7-200系列PLC之间的通讯而制定的串行通讯协议,采用主从的问答方式,上位机为主呼方,下位机为应答方。

协议格式如下,最后一字节为校验字节,校验字节为前面所有字节的按位异或值。

上位机从PLC中读数据:上位机发送读指令:BYTE1: PLC地址 (1~255)BYTE2: 0x00 (读指令代码)BYTE3: 寄存器类型(0-V, 1-Q, 2-I)BYTE4-5: 起始偏移地址(0-9999)BYTE6: 数据个数(1~32 n)BYTE7: 数据类型(1,2,4 m)BYTE8-11: 保留BYTE12: 校验字节PLC应答:读成功时:BYTE1: PLC地址 (1~255)BYTE2: 0x00 (读指令代码)BYTE3: 寄存器类型(0-V, 1-Q, 2-I)BYTE4-5: 起始偏移地址(0-9999)BYTE6: 数据个数(1~32 n)BYTE7: 数据类型(1,2,4 m)BYTE8-n*m+8: 数据BYTEn*m+9: 校验字节读失败时:BYTE1: PLC地址 (1~255)BYTE2: 0x80 (读指令失败代码)BYTE3: 寄存器类型(0-V, 1-Q, 2-I)BYTE4-5: 起始偏移地址(0-9999)BYTE6: 数据个数(1~32 n)BYTE7: 数据类型(1,2,4 m)BYTE8: 0x01(校验错代码)BYTE9-11: 保留BYTE12: 校验字节上位机向PLC中写入数据:上位机发送写指令:BYTE1: PLC地址 (1~255)BYTE2: 0x01 (写指令代码)BYTE3: 寄存器类型(0-V, 1-Q, 2-I)BYTE4-5: 起始偏移地址(0-9999)BYTE6: 数据个数(1 n)BYTE7: 数据类型(1,2,4 m)BYTE8-11: 写入数据BYTE12: 校验字节PLC应答:写成功时:BYTE1: PLC地址 (1~255)BYTE2: 0x01 (写指令代码)BYTE3: 寄存器类型(0-V, 1-Q, 2-I)BYTE4-5: 起始偏移地址(0-9999)BYTE6: 数据个数(1 n)BYTE7: 数据类型(1,2,4 m)BYTE8-11: 保留BYTE12: 校验字节写失败时:BYTE1: PLC地址 (1~255)BYTE2: 0x81 (写指令代码)BYTE3: 寄存器类型(0-V, 1-Q, 2-I)BYTE4-5: 起始偏移地址(0-9999)BYTE6: 数据个数(1 n)BYTE7: 数据类型(1,2,4 m)BYTE8: 0x01(校验错代码)BYTE9-11: 保留BYTE12: 校验字节由于采用自由口通信方式后,梯形图程序通过接收中断和发送中断以及发送指令(XMT)控制通信口的操作。

西门子PLC 自由口通讯

西门子PLC 自由口通讯

1.自由口通讯基本概念1.1 自由口通信概述1.2 自由口通信要点1.3 发送和接收指令2.自由口通信使用指南2.1 通讯口初始化2.2 发送数据:2.3 接收数据2.4 自由口通信例程1.自由口通讯基本概念1.1 自由口通信概述S7-200PLC的通讯口支持RS485接口标准。

采用正负两根信号线作为传输线路。

工作模式采用串行半双工形式,在任意时刻只允许由一方发送数据,另一方接收数据。

数据传输采用异步方式,传输的单位是字符,收发双方以预先约定的传输速率,在时钟的作用下,传送这个字符中的每一位。

传输速率可以设置为1200、2400、4800、9600、19200、38400、57600、115200。

字符帧格式为一个起始位、7或8个数据位、一个奇/偶校验位或者无校验位、一个停止位。

字符传输从最低位开始,空闲线高电平、起始位低电平、停止位高电平。

字符传输时间取决于波特率。

数据发送可以是连续的也可以是断续的。

所谓连续的数据发送,是指在一个字符格式的停止位之后,立即发送下一个字符的起始位,之间没有空闲线时间。

而断续的数据发送,是指当一个字符帧发送后,总线维持空闲的状态,新字符起始位可以在任意时刻开始发送,即上一个字符的停止位和下一个字符的起始位之间有空闲线状态。

示例:用PLC连续的发送两个字符(16#55和16#EE)(程序如图3和图4),通过示波器测量CPU通讯端口管脚3/8之间的电压,波形如下图1.:图1.两个字符(16#55和16#EE)的波形图示例说明:16进制的16#55换算成2进制等于2#01010101,16进制的16#EE换算成2进制等于2#11101110。

如图所示,当数据线上没有字符发送时总线处于空闲状态(高电平),当PLC发送第一个字符16#55时,先发送该字符帧的起始位(低电平),再发送它的8个数据位,依次从数据位的最低位开始发送(分别为1、0、1、0、1、0、1、0),接着发送校验位(高电平或低电平或无)和停止位(高电平)。

200自由口通讯。

200自由口通讯。

西门子自由口使用1.接口定义:2.3G3RV的接线使用RS-485通信时,在变频器的外部让R+,S+短接,R-,S-短接3.接线方式西门子的RS485信号A接R-,S-短接线,RS485信号B连接R+,S+短接线4.程序说明1)XMT指令XMT指令缓冲区格式如表所列T+0 发送字节的个数T+1 数据字节T+2 数据字节T+3 数据字节。

T+255 数据字节2)预先设置变频器以下参数:变频器通讯地址为1通讯波特率9.6K通讯数据偶校验变频器的运行指令采用通讯方式3)使用说明西门子S7-200系列PLC的自由通讯端口编程必定会用到两个指令,即XMT(发送)指令和RCV(接收)指令。

编写程序时需要为这两个指令指定数据缓冲区,一般以最低位数为0的地址作为数据缓冲区的起始地址。

(1).发送指令XMT缓冲区(写/读)VB100 //xmt指令要发送的字节个数VB101 //变频器通讯地址(01)VB102 //modbus功能码(10/03)VB103 //变频器被写地址高位/变频器被读起始地址高位VB104 //变频器被写地址低位/变频器被读起始地址低位VB105 //被写数据个数高位/被读数据字个数高位VB106 //被写数据个数低位/被读数据字个数低位VB107 // 数据数/被发送数据CRC高位VB108 // 最初记录高位/被发送数据CRC低位VB109 // 最初记录低位 /VB110// 以后记录高位 /VB111 // 以后记录低位 /VB112 //被发送数据CRC高位VB113//被发送数据CRC低位(2).接收指令使用中断控制字符接受指令2.CRC校验子程序(SBR0)变频器内置的MODBUS协议采用RTU传输格式,该格式使用CRC校验方式对每次发出或接收的数据帧进行校验。

因此,该子程序使用了多个局部变量,以方便其它子程序调用。

在西门子STEP 7-Micro/Win 编程环境下(如图一),需要在该子程序的局部变量表中预先设定以下局部变量:(1)输入型局部变量(V AR_INPUT)1d_0:DWORD; // 待发送数据地址指针变量lw_4:WORD; // 待发送数据字节个数变量(2)输出型局部变量(V AR_OUTPUT)lb_6:BYTE; // CRC校验值高位变量lb_7:BYTE; // CRC校验值低位变量(3)临时局部变量(V AR)lw_8:WORD; // 待发送数据字节个数计数变量lw_10:WORD; // 待发送数据每字节8位二进制数计数变量Network 1LD SM0.0MOVW 16#FFFF, LW6 //将16位CRC校验寄存器LW6全置为1 Network 2LD SM0.0FOR LW8, +1, LW4 //对待发送数据字节个数(LW4)计数(LW8)循环Network 3LD SM0.0XORB *LD0, LB7 //使待发送数据的第一个字节(*LD0)与//CRC校验寄存器低位字节(LB7)进行异或运算Network 4LD SM0.0INCD LD0 //ld_0指向待发送数据的下一个地址Network 5LD SM0.0FOR LW10, +1, +8 //对每字节8位二进制数计数(LW10)循环Network 6LD SM0.0SRW LW6, 1 //CRC校验寄存器LW6右移一位Network 7LD SM1.1 //若移位后的溢出值SM1.1为1XORW 16#A001, LW6 //则使值16#A001与LW6进行异或运算Network 8NEXT //结束每字节8位二进制数计数循环Network 9NEXT //结束每数据帧字节个数计数循环3.初始化子程序(SBR1)该程序在PLC的第一个扫描周期运行,主要是设置CPU226自由端口的通信格式、数据接收格式及复位各寄存区(参见西门子S7-200编程手册)。

西门子1200自由口232通讯实例

西门子1200自由口232通讯实例

232通讯有三根线,一根收,一根发,一根地。

当两个插头都是公头时,需要手工焊接双母头接头,双母头接头需要收发线交叉对调。

模块的参数设置:注意,<等待时间>不要过长,否则会导致功能块一直16#7000报错,无报文发出发送报文:加入发送块SEND_PTP:port选择232设备,length为长度,这里发送5A A5068300 00 01 14 01,为9个字节。

发送内容在“DB_电源通讯”块中,注意,DB块要取消勾选优化块访问选项并编译BUFFER使用指针形式的写法,格式为:p#块计数.起始位置(空格)BYTE长度数组格式为BYTE按照如上设置并且按照此起始值设置,置位M10.0,发送报文即为5A A506 8300 00 01 14 01。

由于232是点对点通讯模式,不能像485以旁观形式监控报文,所以测试时需要如下连接方式以保证时时监听报文。

接收报文:由于通讯设备(激光器电源)一直在发送报文,所以这里不像485需要请求数据,仅需要做接收即可。

加入RCV_PTP块参数同上,需要注意的是,M10.1仅为测试用,实际应用应当使用时钟脉冲式BUFFER中DBX12.0为DB24块中第二个数组(recieve),即接收数组,BYTE 46为接收长度46个字节:5A A5 2B 82 21 00 00 00 00 00 01 08 01 16 FE D4 00 00 03 F6 00 00 00 06 00 00 00 00 00 78 00 03 00 02 00 19 00 58 00 01 00 55 00 03 03 E8DB24块中第二个数组(recieve)个数应大于等于46(这里为50),格式同样为BYTE使用接收的数据:接收的数据是以字节(BYTE)为单位,但是实际通讯数据是以字(WORD[两个字节])为单位,也就是说16#01 08=10#0264转换方式:上图为DB24块的寻址地址22与23转换为浮点数,并将浮点数除以10得到实际温度:26.4度。

西门子自由口通讯

西门子自由口通讯

西门子自由口通讯
现在有5台200plc,一个扫描枪,需要把扫描枪的数据发送到其他4个从站cpu里面,现在是用的自由口通讯模式,modbus电脑装不上,知道怎么用中断,但现在纠结的是怎么区分发送信息给哪一个从站,怎么定义从站站号,比如发送的首地址是vb100,定义站号应该是在哪个字节呢?
最佳答案
采用轮询方式,主站主动发,从站被动应答。

例如主站发:aa01打头的报文,四个从站都接收到了,但是只让1号从站将该数据作为有效数据,其他三个从站将接收到的数据作为无效数据。

如果为了通讯可靠,也可以让从站发确认信息,比如1号从站收到上边报文后回:bb01打头的报文,主站收到后确认从站收到数据,其他三个从站不做处理。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、串口特性设置
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。

下面的il=1表示检测空闲状态,sc=1表示检测报文的起始字符,bk=1表示检测break条件,SMW90或SMW190中是以ms为单位的空闲线时间。

在执行RCV指令时,有以下几种判别报文起始条件的方法:
1、空闲线时间:il=1,sc=0,bk=0,SMW90或SMW190>0。

在该方式下,从执行RCV指令开始,在传输线空闲的时间大于等于SMW90或SMW190中设定的时间之后接收的第一个字符作为新报文的起始字符。

2、起始字符检测:il=0,sc=1,bk=0,忽略SMW90或SMW190。

以SMB88中的起始字符作为接收到的报文开始的标志。

3、break检测:il=0,sc=0,bk=1,忽略SMW90或SMW190。

以接收到的break作为接收报文的开始。

4、对通讯请求的响应:il=1,sc=0,bk=0,SMW90或SMW190=0,(设置空闲线时间为0)。

执行RCV指令后就可以接收报文。

若使用报文超时定时器(c/m=1),它从RCV指令执行后开始定时,时间到时强制性地终止接收。

若在定时期间没有接收到报文或只接收到部分报文,则接收超时,一般用它来终止没有响应的接收过程。

5、break和一个起始字符:il=0,sc=1,bk=1,忽略SMW90或SMW190。

以接收到的break 之后的第一个起始字符作为接收信息的开始。

6、空闲线和一个起始字符:il=1,sc=1,bk=0,SMW90或SMW190>0。

以空闲线时间结束后接收的第一个起始字符作为接收信息的开始。

7、空闲线和一个起始字符(非法):il=1,sc=1,bk=0,SMW90或SMW190=0,除了以起始字节作为报文开始的判据外(sc=1),其他特点与4相同。

SMB87.3/SMB187.3=0时,SMW92/SMW190为字符间超时定时器,为1时为报文超时定时器。

字符间超时定时器用于设置接收的字符间的最大间隔时间。

只要字符间隔时间小于该设定时间,就能接收到所有信息,而与整个报文接收时间无关。

报文超时定时器用于设置最大接收信息时间,除4和7中所述特殊情况外,其他情况下在接收到第一个字节后开始定时,若报文接收时间大于该设置时间,将强制终止接收,不能接收到全部信息。

上述两种定时器的定时时间到时均强制结束接收,在SMB86/SMB186中都表现为接收超时。

接收结束条件可以用逻辑表达式表示为:结束条件=ec+tmr+最大字符数,即在接收到结束字节、超时或接收字符超过最大字符数时,都会终止接收。

另外,在出现奇偶检验错误(如果允许)或其他错误的情况下,也会强制结束接收。

五、总结
5.1、报文开始的标志
5.11、单条件判断
1、空闲线时间:il=1,sc=0,bk=0,SMW90或SMW190>0。

在该方式下,从执行RCV指令开始,在传输线空闲的时间大于等于SMW90或SMW190中设定的时间之后接收的第一个字符作为新报文的起始字符。

总结:接收报文起始条件:执行RCV后传输线空闲时间大于设定的空闲时间后接收到的第
一个字符作为起始字符。

报文定时开始条件:当空闲线时间超过设定后接收到第一个字符后开始定时。

报文结束条件:接收到结束字符、超时、超过接收字符数、奇偶检验错误时结束。

2、起始字符检测:il=0,sc=1,bk=0,忽略SMW90或SMW190。

以SMB88中的起始字符作为接收到的报文开始的标志。

总结:接收报文起始条件:执行RCV后接收到字符与SMB88起始字符一致时此字符作为接
收报文开始的标志。

报文定时开始条件:接收到起始字符后开始定时。

报文结束条件:接收到结束字符、超时、超过接收字符数、奇偶检验错误时结束。

3、break检测:il=0,sc=0,bk=1,忽略SMW90或SMW190。

以接收到的break作为接收报文的开始。

总结:接收报文起始条件:执行RCV后以接收到break作为接收报文的开始。

报文定时开始条件:接收到break后开始计时。

报文结束条件:接收到结束字符、超时、超过接收字符数、奇偶检验错误时结束。

5.12、特殊情况
对通讯请求的响应:il=1,sc=0,bk=0,SMW90或SMW190=0,(设置空闲线时间为0)。

执行RCV指令后就可以接收报文。

若使用报文超时定时器(c/m=1),它从RCV指令执行后开始定时,时间到时强制性地终止接收。

若在定时期间没有接收到报文或只接收到部分报文,则接收超时,一般用它来终止没有响应的接收过程。

(总结:报文从执行RCV指令后就开始了)
总结:接收报文起始条件:执行RCV后接收报文过程就开始了。

报文定时开始条件:执行RCV后就开始定时。

报文结束条件:接收到结束字符、超时、超过接收字符数、奇偶检验错误时结束。

5.12、组合条件
5、break和一个起始字符:il=0,sc=1,bk=1,忽略SMW90或SMW190。

以接收到的break 之后的第一个起始字符作为接收信息的开始。

总结:接收报文起始条件:接收到break后当接收到SMB88中的起始字符时作为接收报文
的开始条件。

报文定时开始条件:接收到起始字符开始计时。

报文结束条件:接收到结束字符、超时、超过接收字符数、奇偶检验错误时结束。

6、空闲线和一个起始字符:il=1,sc=1,bk=0,SMW90或SMW190>0。

以空闲线时间结束后接收的第一个起始字符作为接收信息的开始。

总结:接收报文起始条件:执行RCV后空闲线时间大于设定后接收到SMB88中的起始字符
作为接收报文的开始标志。

报文定时开始条件:接收到起始报文后开始定时。

报文结束条件:接收到结束字符、超时、超过接收字符数、奇偶检验错误时结束。

5.13特殊组合条件
7、空闲线和一个起始字符(非法):il=1,sc=1,bk=0,SMW90或SMW190=0,除了以起始字节作为报文开始的判据外(sc=1),其他特点与4相同。

总结:接收报文起始条件:执行RCV后接收到SMB88中的起始字符作为接收报文的开始标
志。

报文定时开始条件:接收到起始字符时开始定时。

报文结束条件:接收到结束字符、超时、超过接收字符数、奇偶检验错误时结束。

相关文档
最新文档