S7_200PLC与PC自由口通讯的多种实现方法
- 格式:doc
- 大小:62.50 KB
- 文档页数:9
s7-200⾃由⼝通信S7-200 ⾃由⼝通信关键字要点初始化RS485例程发送发送完成接收接收完成起始条件结束条件字符中断S7-200⾃由⼝通信简介S7-200 CPU的通信⼝可以设置为⾃由⼝模式。
选择⾃由⼝模式后,⽤户程序就可以完全控制通信端⼝的操作,通信协议也完全受⽤户程序控制。
⼀般⽤于和第三⽅串⾏通信设备进⾏通信。
⾃由⼝模式可以灵活应⽤。
Micro/WIN的两个指令库(USS和Modbus RTU)就是使⽤⾃由⼝模式编程实现的。
在进⾏⾃由⼝通信程序调试时,可以使⽤PC/PPI电缆(设置到⾃由⼝通信模式)连接PC和CPU,在PC上运⾏串⼝调试软件(或者Windows的Hyper Terminal-超级终端)调试⾃由⼝程序。
USB/PPI电缆和CP卡不⽀持⾃由⼝调试。
⽬录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。
西门子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发送过来的信息来显示控制状态。
S7-200smart-PLC与电脑的连接————————————————————————————————作者:————————————————————————————————日期:1S7-200smart编程软件使用介绍1.1软件的安装与卸载软件安装对计算机要求:操作系统:Windows XP SP3(仅32位) 、Windows 7(支持32位和64位)至少350M字节的空闲硬盘空间安装方法:打开编程软件安装包。
找到安装程序SETUP.exe双击运行直接安装(如图所示)1.2S7-200SMARTPLC程序的上载和下载步骤一、建立通信连接S7-200 SMART CPU 可以通过以太网电缆与安装有STEP7 Micro/WIN SMART 的编程设备进行通信连接。
注意:一对一通信不需要交换机,如果网络中存在两台以上设备则需要交换机。
1、硬件连接(编程设备直接与CPU 连接)首先,安装CPU 到固定位置;其次,在CPU 上端以太网接口插入以太网电缆,如图所示;最后,将以太网电缆连接到编程设备的以太网口上。
2、建立Micro/WIN SMART 与CPU 的连接首先,在STEP 7-Micro/WIN SMART 中,点击“通信” 按钮(如图)打开“通信” 对话框(如图);然后,进行如下操作:a.单击“网络接口卡” 下拉列表选择编程设备的“网络接口卡”。
b.双击“更新可用设备” 来刷新网络中存在的CPU ;c.在设备列表中跟据CPU 的IP 地址选择已连接的CPU。
d.选择需要进行下载的CPU 的IP 地址之后,单击“OK” 按钮,建立连接。
(同时只能选择一个CPU 与Micro/WIN SMART 进行通信)注意:如果网络中存在不只一台设备,用户可以在“通信” 对话框中左侧的设备列表中选中某台设备然后点击“Flash Lights” 按钮轮流点亮CPU 本体上的RUN ,STOP 和ERROR 灯来辨识该CPU。
.NET的计算机与S7-200 PLC自由口通信PLC作为一种高效、灵活、可靠的控制器,已经广泛地应用在包括数字逻辑控制、运动控制、闭环过程控制、数据处理和联网通信等工业控制领域。
在联网通信方面,PLC与上位计算机设备一起,可以组成“集中管理、分散控制”的分布式工业控制系统。
在这种控制系统中,PLC与上位机的通信对系统整体性能有着较大的影响。
面对众多厂家不同类型的PLC,它们在功能编程上没有统一的标准而且在通信协议上也是千差万别,选择一种即能满足通信要求又经济实用的通信协议是非常关键的。
本文以S7-200PLC为对象,详细研究了S7-200PLC在自由端口模式下与PC之间的通信方法,并采用.net环境下的C#语言编写通信程序实现了计算机与PLC之间的通信。
这种通信方式硬件投入低,通信协议灵活,可以在多个工业控制领域得到广泛的应用。
1 S7-200 PLC与上位机的通信方式S7-200 系列PLC与上位机进行通信主要有以下几种方式:(1)通过S7-200 PLC的OPC服务器(pc access)作为上位机的OPC服务器,这种方式只须在OPC服务器中配置相应的测点数据,编程简单,但通信速率不高,用户不能自由修改通信协议;(2)利用触摸屏,这种方式需要根据触摸屏兼容的通信协议进行选择,通信可靠性高,但灵活性差,触摸屏界面编程功能也不够强大;(3)利用通用编程软件实现,这种方法虽然系统开发工作量大,对技术人员的水平和经验都要求较高,但编程灵活,可以实现比较复杂的功能。
本文采用了第三种通信方式,在开发通信软件时考虑了S7-200 PLC所特有的一种通信方式—自由口通信模式。
在自由口模式下用户可自定义协议,利用串口和PLC的通信口来收发数据,通信功能完全由用户程序控制,通信任务和信息定义均需由用户编程实现,通过调用子程序来进行接收中断、发送中断、发送指令(XMT)、接收指令(RCV)等通信控制操作。
2 自由口通讯工作模式的定义在中小规模系统,通信速率要求不是特别高的情况下,S7-200 PLC自带的编程口可以作为通信口使用。
主题:应用探讨—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与计算机的通信(工业自动化系统> s7-200)概述----本例说明如何以自由协议实现计算机与S7-200的通信,计算机作为主站,可以实现对PLC 从站各寄存器的读/写操作。
----计算机通过COM口发送指令到PLC的PORT0(或PORT1)口,PLC通过RCV接收指令,然后对指令进行译码,译码后调用相应的读/写子程序实现指令要求的操作,并返回指令执行的状态信息。
通信协议----在自由口模式下,通信协议是由用户定义的。
用户可以用梯形图程序调用接收中断、发送中断、发送指令(XMT)、接受指令(RCV)来控制通信操作。
在自由口模式下,通信协议完全由梯形图程序控制。
指令格式定义计算机每次发送一个33字节长的指令来实现一次读/写操作,指令格式见表1 说明:起始字符----起始字符标志着指令的开始,在本例中被定义为ASCII码的"g",不同的PLC从站可以定义不同的起始字符以接收真对该PLC的指令。
指令类型----该字节用来标志指令的类型,在本例中05H代表读操作,06H代表写操作。
目标PLC站地址----目标PLC站地址占用指令的B2、B3两个字节,以十六进制ASCII码的格式表示目标PLC 的站地址。
目标寄存器地址----在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)读/写字节数M----当读命令时,始终读回从目标寄存器开始的连续8个字节的数据(转换为十六进制ASCII 码后占用16个字节),可以根据自己的需要取用,M可以任意写入。
----当写命令时,M表示的是要写入数据的十六进制ASCII码所占用的字节数。
S7-200自由口通信S7-200 CPU的通信口可以设置为自由口模式。
选择自由口模式后,用户程序就可以完全控制通信端口的操作,通信协议也完全受用户程序控制。
S7-200 CPU上的通信口在电气上是标准的RS-485半双工串行通信口。
此串行字符通信的格式可以包括:∙一个起始位∙7或8位字符(数据字节)∙一个奇/偶校验位,或者没有校验位∙一个停止位自由口通信速波特率可以设置为1200、2400、4800、9600、19200、38400、57600或112500。
凡是符合这些格式的串行通信设备,理论上都可以和S7-200 CPU通信。
自由口模式可以灵活应用。
Micro/WIN的两个指令库(USS和Modbus RTU)就是使用自由口模式编程实现的。
在进行自由口通信程序调试时,可以使用PC/PPI电缆(设置到自由口通信模式)连接PC和CPU,在PC上运行串口调试软件(或者Windows的Hyper Terminal-超级终端)调试自由口程序。
USB/PPI电缆和CP卡不支持自由口调试。
自由口通信要点应用自由口通信首先要把通信口定义为自由口模式,同时设置相应的通信波特率和上述通信格式。
用户程序通过特殊存储器SMB30(对端口0)、SMB130(对端口1)控制通信口的工作模式。
CPU通信口工作在自由口模式时,通信口就不支持其他通信协议(比如PPI),此通信口不能再与编程软件Micro/WIN通信。
CPU停止时,自由口不能工作,Micro/WIN就可以与CPU通信。
通信口的工作模式,是可以在运行过程中由用户程序重复定义的。
如果调试时需要在自由口模式与PPI模式之间切换,可以使用SM0.7的状态决定通信口的模式;而SM0.7的状态反映的是CPU运行状态开关的位置(在RUN时SM0.7="1",在STOP时SM0.7="0")自由口通信的核心指令是发送(XMT)和接收(RCV)指令。
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提供了用于进行通讯协议定制的特殊标志位以及相关的通讯指令。
特殊标志字节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 ——38400bps001 ——19200bps010 ——9600bps011 ——4800bps100 ——2400bps101 ——1200bps110 —— 600 bps111 —— 300 bpsmm: 用于通讯协议的选择,当这两位的组合是:00 ppi从站模式 01 自由口通讯模式 10 ppi主站模式接收信息的状态字节s7-200在自由口通讯时用于接受信息的状态有smb86和smb186,smb86用于s 7-200的端口0的通讯,smb186用于s7-200的端口1的通讯,两者的格式一样,下面我们以smb186为例,介绍其组成。
S7-200PLC与PC自由口通讯的多种实现方法
黄祥国;黄小文
【期刊名称】《机械》
【年(卷),期】2006(0)S1
【摘要】讨论了西门子 S7-200PLC 自由口通讯的多种实现方法,在 PLC 端使用SIMATIC 指令、在 PC 端使用 VC6.0中的MSComm 控件和 CSerialPorts 类、VB6.0中的 MSComm 控件或利用 PcommPro 软件来实现了通讯程序的设计,并给了相应的程序的部分代码。
【总页数】3页(P119-121)
【关键词】可编程控制器;数据传输;自由口;VC++;VB6.0
【作者】黄祥国;黄小文
【作者单位】武汉理工大学机电学院
【正文语种】中文
【中图分类】TM571.61
【相关文献】
1.如何在自由端口模式下实现S7-200PLC与PC的实时通讯 [J], 李振强;李丽;刘文武
2.基于VB的PC机与S7-200PLC自由口通信的实现及应用 [J], 田娟娟;蔡光起;史家顺;王晋生
3.西门子S7-200PLC自由口通讯的两种Delphi实现方法 [J], 肖珊
4.S7-200PLC与PC在自由口通讯模式下的多种通讯实现方法 [J], 无
5.S7—200PLC与PC自由口通讯的多种实现方法 [J], 黄祥国; 黄小文
因版权原因,仅展示原文概要,查看原文内容请购买。
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,CT S,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参数进行实时修改,达到管理、控制一体化。