S7-200PLC与PC自由口通讯的多种实现方法

合集下载

S7_200PLC与PC间的串口通信_高歌

S7_200PLC与PC间的串口通信_高歌
在执行连 接 到 接 收 字 符 中 断 的 中 断 程 序 之 前 ,接收到的字符存储在自由端口模式的接收字 符缓冲区 SMB2 中 ,奇偶状态存储在自由端口模 式的奇偶校验错误标志位 SM3. 0 中 。端口 0 和 端口 1共用 SMB2和 SMB3。
异或校验 是 提 高 通 信 可 靠 性 的 重 要 措 施 之 一 。在传输过程中 ,指令有可能受到任何干扰而 使原数据信号发生扭曲 ,此时的指令必有误 。对 于监测指令在传输过程中发生的错误 ,接收方必 须对指令作进一步的确认工作 。采用异或循环校 验的方法将传送的字符串以字节为单位作异或 和 ,并将此异或和作为指令的一部分 (校验位 )传 送出去 。接收方收到指令后以相同方式对接收到 的字符串依次作异或和并与传送方所传送来的校 验位作比较 ,如相等则代表收到的指令正确 ,反之 为错误 ,请求重发 。
RCV 指令可以方便的接收一个或多个字符 , 最多可接收 255 个字符 ,如果有中断程序连接到 接收结束事件上 ,在接收完最后一个字符时 ,端口 0产生中断事件 23,端口 1产生中断事件 24。
可以监视 SMB86或 SMB186的变化 ,而不是 用中断进行报文的接收 。 SMB86或 SMB186为非 零时 , RCV 指令未被激活或接收已经结束 。正在 接收报文时 ,它们为零 。必须为报文接收功能定 义一个启动条件和一个结束条件 。当超时或奇偶 校验错误时 ,将自动中止报文接收功能 。也可以 用字符中断而不是用接收指令来控制接收数据 , 每接收一个字符产生一个中断 。在端口 0或端口 1接收一个字符时 ,分别产生中断事件 8 或中断 事件 25。
计 算 机 的 通 信 编 程 方 法 很 多 , 通 常 使 用 V isual C + +语言或 V isual B asic语言 ,还可以使 用 C#等语言 。其中 V isual B asic语言 ,简单实用 , 因此在实现计算机与可编程控制器之间的串行通 信中应用较多 。

S7-200PLC的自由口通信工程应用

S7-200PLC的自由口通信工程应用

S7-200PLC的自由口通信工程应用笫1章S7-200 PLC的自由口通信工程应用本章由浅到深循序渐进地例举了S7-200 PLC自由口通信的三个工程应用实例。

分别从任务描述、任务剖析、解决方案、实施步骤和常见故障及排故方法这五个方面进行了描述。

第一个实例“智能立体车库系统中IC卡的应用”讲述了S7-200 PLC的自由口通信的只读功能实现方法,第二个实例“RFID在AGV(Automated Guided Vehicle)中的应用”讲述了S7-200 PLC的自由口通信的读写功能实现方法,第三个实例“S7-200 PLC在无线通信上的应用”讲述了S7-200 PLC 的自由口通过自定义通信协议实现一对多的无线通信功能。

1.1智能立体车库系统中IC卡的应用1.1.1 任务描述智能立体车库系统要求采用刷卡方式完成车辆自动出入立体车库。

当司机刷卡并设定密码后,卡信息与车辆进行绑定,车辆将自动进入车库相应的车位,当司机想取出车辆时,司机只需刷卡并通过密码验证,系统将自动从车库中寻找该卡对应的车辆并将车取出到车库。

其中控制车辆进出的控制器采用西门子S7 - 200 系列CPU226 型可编程控制器来实现。

1.1.2 任务剖析智能立体车库要求采用刷卡方式作为车辆出入立体车库的凭证,这就要求控制系统能读出卡上的信息,利用卡的信息作为身份识别把卡和车辆绑定起来。

选用在弱电系统中作为门禁或停车场系统使用者身份识别的ID卡就能满足要求。

ID卡全称为身份识别卡(Identification Card),是一种只读的感应卡,每张ID卡有一个全球唯一的芯片编码。

它靠读卡器设备感应供电并读出存储在芯片EEPROM中的唯一卡号,该卡号在封卡前一次写入,封卡后不能更改,该ID卡完全能满足车辆身份识别的要求。

同时S7-200 PLC的自由口通信能实现通过读卡器设备读出卡上信息从而完成车辆身份识别的功能。

1.1.3 解决方案该任务实现的关键是要求S7-200 PLC能读出ID卡的信息,考虑到大多数的ID读卡器设备提供了与电脑直接通信的RS232通信方式,而S7-200 CPU的通信口电气上是标准的RS-485半双工串行通信口,因此硬件上需要通过RS-232到RS485转换器把ID读卡器设备连接到S7-200 CPU的通信口上,由于PC/PPI电缆本质上就是RS-232到RS485的转换,所以也可以通过PC/PPI电缆把ID读卡器设备连接到S7-200 CPU的通信口上。

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

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

自由口模式下西门子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可以与任何具有通讯能力的、并且协议公开的设备相通讯。

S7—200PLC与计算机自由通信的实现

S7—200PLC与计算机自由通信的实现

龙源期刊网 S7—200PLC与计算机自由通信的实现作者:程阔来源:《阜阳职业技术学院学报》2014年第03期摘要:主要介绍西门子S7-200的自由通信口与计算机的串口进行通讯的方法,计算机中采用VB进行通信编程,从而可以实现计算机对PLC的直接控制。

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

关键词:自由通信;VB;串行通信口中图分类号:TP31 文献标识码:A 文章编号:1672-4437(2014)03-0038-04通信也就是数据的一种交换,为了实现与已知的控制设备进行通信,提高自动化控制系统的灵活性、集成性,许多PLC制造商相继的开发出了方便、灵活的自由端口通讯方式,方便用户。

诸如Mitsubishi公司的FX2系列PLC,OMRON公司的CJM1系列的PLC,SIEMENS公司的S7-200系列PLC等都提供了自由端口通信模式。

自由端口通信是指PLC提供了串行的通讯硬件,以及用于定制通讯协议的相关指令,在自动化控制系统中,与PLC连接的控制设备的通讯协议已知时,可以在PLC中进行编程定制通讯协议,即可与控制设备进行数据通讯。

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

(一)特殊标志字节用于S7-200自由端口通讯模式定义的特殊标志字节有SMB30和SMB130,SMB30用于PORT0的通讯,SMB130用于PORT1的通讯,两者的格式完全一样。

8位的含义如下表:(二)接收信息的状态字节S7-200在自由端口通信时用于接受信息的状态有SMB86和SMB186,SMB86用于PORT0的通讯,SMB186用于PORT1的通讯,两者的格式完全一样。

8位的含义如下表:。

如何实现S7-200SMART自由口通讯

如何实现S7-200SMART自由口通讯

如何实现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。

S7-200自由口通讯教程及编程实例

S7-200自由口通讯教程及编程实例

S7-200自由口通讯教程及编程实例S7-200自由口通讯自由口模式允许应用程序控制S7-200 CPU的通讯端口,使用PC/PPI电缆和自由口功能,可以将S7-200连接到带有RS-232兼容接口的多种设备,比如调制解调器。

这里我们将介绍如何用S7-200连接GSM调制解调器发送短消息,并通过这个例子来介绍应用S7-200自由口编程的一般原则时及应注意的问题。

在下面的例子中我们将用到:1. PC/PPI电缆(10位;9 600波特;DIP开关设置:0 1 0 1 1)2. 西门子S7-200 CPU22X3. TC35 Terminal GSM调制解调器4. 一个9直通针转接头(用来连结PC/PPI电缆与TC35 Terminal调制解调器)5. 一根九针直通电缆(用来连结计算机与TC35 Terminal调制解调器)6. STEP 7-Micro/Win V3.2或更高版本软件一、TC35 调制解调器AT指令简介要使用TC35发送短消息需要使用TC35的AT指令,我们首先介绍如何用Windows自带的超级终端连接TC35发送短消息。

1.用九针直通的电缆将TC35连接到计算机的串口上2.打开超级终端(开始à程序à附件à通讯à超级终端)3.为连接取名Connect to TC35T4.选择TC35连接的串口COM15.按照下图的参数设置端口。

19 200 bps为TC35默认的端口波特率,如果该波特率已被更改,请选择正确的波特率。

6.在窗口中键入AT回车测试与TC35的连接,如果连接正确,TC35将返回OK。

7.TC35可以发送两种格式的短消息,普通文本格式和PDU格式。

应用普通文本格式时,短消息内容以ASCII码格式直接输入,操作比较简单,缺点是只能发送英文短消息;应用PDU格式时,短消息内容以Unicode格式输入,可以发送任何文字,缺点是短消息内容需要转换成Unicode码,并且要把短消息按PDU格式打包,操作比较复杂(编程复杂)。

自由口模式下S7-200PLC与计算机的通信

自由口模式下S7-200PLC与计算机的通信

自由口模式下S7-200PLC与计算机的通信本例说明如何以自由协议实现计算机与S7-200的通信,计算机作为主站,可以实现对PLC 从站各寄存器的读/写操作。

---- 计算机通过COM口发送指令到PLC的PORT0(或PORT1)口,PLC通过RCV接收指令,然后对指令进行译码,译码后调用相应的读/写子程序实现指令本例说明如何以自由协议实现计算机与S7-200的通信,计算机作为主站,可以实现对PLC 从站各寄存器的读/写操作。

----计算机通过COM口发送指令到PLC的PORT0(或PORT1)口,PLC通过RCV接收指令,然后对指令进行译码,译码后调用相应的读/写子程序实现指令要求的操作,并返回指令执行的状态信息。

通信协议----在自由口模式下,通信协议是由用户定义的。

用户可以用梯形图程序调用接收中断、发送中断、发送指令(XMT)、接受指令(RCV)来控制通信操作。

在自由口模式下,通信协议完全由梯形图程序控制。

指令格式定义计算机每次发送一个33字节长的指令来实现一次读/写操作,指令格式见表1 说明:1.起始字符----起始字符标志着指令的开始,在本例中被定义为ASCII码的"g",不同的PLC从站可以定义不同的起始字符以接收真对该PLC的指令。

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

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

4.目标寄存器地址----在PLC内部可以用4个字节来表示一个寄存器的地址(但不能表示一个位地址)。

前两个字节表示寄存器类型,后两个字节表示寄存器号。

00 00(H):I寄存器区01 00(H):Q寄存器区02 00(H):M寄存器区08 00(H):V寄存器区例如:IB000的地址可表示为00 00 00 00(H)VB100的地址可表示为08 00 00 64(H)5.读/写字节数M----当读命令时,始终读回从目标寄存器开始的连续8个字节的数据(转换为十六进制ASCII 码后占用16个字节),可以根据自己的需要取用,M可以任意写入。

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

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
LD SM0.1 // 第一次扫描
MOVB 16#09,SMB30
//自由口通讯模式:9600波特率,无奇偶校验,8个数据位
MOVB 16#7C,SMB87 //接收信息状态字节
MOVB 16#53,SMB88
//设置信息的开始字符“S”
MOVB 16#45,SMB89
//设置信息的结束字符“E”
MOVW +5,SMW90
//设定空闲行的时间间隔(ms)
MOVW +179,SMW92
//字符间/信息间定时器超时值(ms)
MOVB 60,SMB94 //接收字符的个数
NETWORK2
LD SM0.1 MOVB 16#53,VB2499
//设置接收和发送缓冲区的首地址
ATCH 发送完中断,9
//把发送完成中断和发送完成中断子程序连接起来
ATCH 接收完中断,23
//把接收完成中断和接收完成中断子程序连接起来
ENI //允许中断
PLC程序的主要流程框图如图1所示:
图1 PLC程序流程
4 自由口通讯在PC 端程序实现
为了充分利用计算机数据处理的强大功能,可以在上位机编写程序来实现计算机与PLC的通讯。

可以用
VC或VB实现上位机和PLC的通讯。

4.1 利用VC6.0 或VC6.0 MSComm控件实现
MSComm控件Microsoft公司提供的简化的Windows下串行通讯编程的ActiveX控件,它为应用程序提供了通过串口收发数据的简便方法。

PC机通过RS-232口与PLC进行通信,该通信控件提供了使用RS-232开发串行通信软件的细则,使用事件驱动或查询方式来解决开发通信软件中遇到的问题。

事件驱动是一种强大的处理问题的方法,对事件发生的跟踪和处理在通信软件中用Oncomm来实现,它包括检测和处理通信错误等;查询方式则要求设计者自行读取CommEven值,并判断发生何种事件,再对之进行处理。

该控
件有许多重要的属性,主要的属性如附表所示。

附表MSComm属性
开发通信软件只需上述几个重要属性设置好通信口,然后用SetOutput指令发送命令。

按照通信协议,待PC机与PLC握手成功后,可按特定的数据格式通过GetInput或SetOutput来接收或发送数据。

4.2 利用VC6.0 CSerialPorts类实现
如果在程序中使用多个串口,而且还要做很复杂的处理工作,那么最好不用MSComm控件。

如果这时候不愿意自己编写底层函数,就可以使用CSerial Ports类。

这个类是由Remon编写的。

其中详细的功能可以在其网站上查询。

将SerialPort.h 和SerialPort.cpp两个类文件复制到工程文件夹中,用Project -> Add to project -> Files
命令将上述两个文件加入工程。

串口的初始化:
在这种方式下,串口的初始化通常放在一个自定义的函数中,这样可以使用多不同的端口,下面以初始化
COM的为例给出部分代码。

void CtestView::OpenCom2()
{ DCB dc;
dc.DCBlength = sizeof(DCB);
dc.BaudRate = CBR_9600;
//数据传输速率为9600
dc.ByteSize = 8;
//8位数据位
dc.StopBits = ONESTOPBIT;
//1位停止位
dc.Parity = NOPARITY;
//无校验
}
其中DCB(设备控制块)是一种数据结构,用以实现串口属性的设置。

数据的接收和发送:
数据接收是调用了ReadByte函数,每次读取一个BYTE型变量,多个数据的读取可以通过循环实现。

数据发送是调用WriteByte函数,每次只能发送一个无符号的char型或者与之等价的数据,多个数据可以通
过循环实现。

4.3 利用PCommPro应用软件实现
与PLC通讯时,PC机还可采用的PCommPro应用软件,该软件是通过Win32初级API函数的调用来控制和使用通讯端口。

与VB/VC中的MComm控件相比较,使用较复杂些,但通讯效率高输出控制较好。

在程序中PC机接收数据采用回调函数的处理方式,即欲建立事件,需给定一个函数的地址,当事件发生时,Pcomm便到该回调函数所在的地址去执行该程序代码。

所谓回调函数是指当调用一个函数时(尤其是API),该函数会要求调用者提供一个函数的地址,当被调用函数执行后,会再去调用此函数,目的是将结果传送回来让用户知道,或是该被调用函数需要另一个参考的函数运算等,这种做法就称为回调。

Pcomm
中的回调函数主要介绍以下几种。

Sio_term_irq:当收到终止字符时引发事件程序;
Sio_cnt_irq:接收到固定字符时引发事件;
Sio_modem_irq:当硬件线路的电压发生变化时,引发事件,硬件线路包括DCD,DSR,CTS,RI4支管脚;
Sio_break_irq:当接到中断信号时引发事件。

在程序设计中要根据具体的情况来选择不同的回调函数。

例:数据以ASCII值形式传递时,可以使用Sio_term_irq函数,即当收到终止字符时引发事件程序,也可以使用其它回调函数。

但当传递的数据以字
节形式表示时,使用Sio_term_irq函数可能会引发一些问题,是因为传递的数据值可能与函数所设置的终
止字符相同,可能造成接收数据的不完整。

图2 PC的主要程序流程框图
应用到的其它函数还有如下:
sio_open():打开通信端口;
sio_ioctl():设置传输的端口参数,给定的参数有三个,有端口号码、波特率和参数模式(由数据位、停止位
和奇偶检验位3部分组成);
sio_read():从接收缓冲区中读取字符串;
sio_write():把发送缓冲区中的数据发送出去;
sio_close():关闭通讯端口,此操作会导致所有的接收和传送操作都停止。

PC程序的主要流程框图如图2所示。

5 结束语
S7-200的自由口通讯方式,使用户可以通过PLC指令自己定义通讯协议,从而与任何公开通讯协议的RS-422或RS-232C接口设备进行通讯,使通讯范围大为增加,控制系统配制更加灵活。

随着计算机的普及,人们更希望在享受PLC高性能控制功能的同时,利用个人计算机大量丰富的软件,将PLC的信息转换成各类画面显示,并可以对PLC的参数进行实时修改,达到管理、控制一体化。

相关文档
最新文档