S7-200PLC与PC自由口通讯的多种实现方法.doc_第1页
S7-200PLC与PC自由口通讯的多种实现方法.doc_第2页
S7-200PLC与PC自由口通讯的多种实现方法.doc_第3页
S7-200PLC与PC自由口通讯的多种实现方法.doc_第4页
S7-200PLC与PC自由口通讯的多种实现方法.doc_第5页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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 程序一些简单介绍NETWORK1LD 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/接收字符个数NETWORK2LD 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; /数据传输速率为9600dc.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

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论