PLC与PC(个人算机)通讯概述.doc
《PLC与PC(个人算机)通讯概述.doc》由会员分享,可在线阅读,更多相关《PLC与PC(个人算机)通讯概述.doc(62页珍藏版)》请在沃文网上搜索。
1、PLC与PC(个人计算机)通讯概述个人计算机(以下简称PC)具有较强的数据处理功能,配备着多种高级语言,若选择适当的操作系统,则可提供优良的软件平台,开发各种应用系统,特别是动态画面显示等。随着工业PC的推出,PC在工业现场运行的可靠性问题也得到了解决,用户普遍感到,把PC连入PLC应用系统可以带来一系列的好处。 1. PC与PLC实现通信的意义 把PC连入PLC应用系统具有以下四个方面作用: 1)构成以PC为上位机,单台或多台PLC为下位机的小型集散系统,可用PC实现操作站功能。 2)在PLC应用系统中,把PC开发成简易工作站或者工业终端,可实现集中显示、集中报警功能。 3)把PC开发成 P
2、LC编程终端,可通过编程器接口接入PLC,进行编程、调试及监控。4)把PC开发成网间连接器,进行协议转换,可实现PLC与其它计算机网络的互联。2. PC与PLC实现通信的方法把PC连入PLC应用系统是为了向用户提供诸如工艺流程图显示、动态数据画面显示、报表编制、趋势图生成、窗口技术以及生产管理等多种功能,为PLC应用系统提供良好、物美价廉的人机界面。但这对用户的要求较高,用户必须做较多的开发工作,才能实现PC与PLC的通信。为了实现PC与PLC的通信,用户应当做如下工作: 1)判别PC上配置的通信口是否与要连入的PLC匹配,若不匹配,则增加通信模板。 2)要清楚PLC的通信协议,按照协议的规定
3、及帧格式编写PC的通信程序。PLC中配有通信机制,一般不需用户编程。若PLC厂家有PLC与PC的专用通信软件出售,则此项任务较容易完成。 3)选择适当的操作系统提供的软件平台,利用与PLC交换的数据编制用户要求的画面。 4)若要远程传送,可通过Modem接入电话网。若要PC具有编程功能,应配置编程软件。3. PC与PLC实现通信的条件 从原则上讲,PC连入PLC网络并没有什么困难。只要为PC配备该种PLC网专用的通信卡以及通信软件,按要求对通信卡进行初始化,并编制用户程序即可。用这种方法把PC连入PLC网络存在的唯一问题是价格问题。在PC上配上PLC制造厂生产的专用通信卡及专用通信软件常会使P
4、C的价格数倍甚至十几倍的升高。用户普遍感兴趣的问题是,能否利用PC中已普遍配有的异步串行通信适配器加上自己编写的通信程序把PC连入PLC网络,这也正是本节所要重点讨论的问题。带异步通信适配器的PC与PLC通信并不一定行得通,只有满足如下条件才能实现通信。 1)只有带有异步通信接口的PLC及采用异步方式通信的 PLC网络才有可能与带异步通信适配器的PC互连。同时还要求双方采用的总线标准一致,都是RS-232C,或者都是RS-422(RS-485),否则要通过“总线标准变换单元”变换之后才能互连。 2)要通过对双方的初始化,使波特率、数据位数、停止位数、奇偶校验都相同。 3)用户必须熟悉互联的PL
5、C采用的通信协议。严格地按照协议规定为PC编写通信程序。在PLC一方不需用户编写通信程序。满足上述三个条件,PC就可以与PLC互联通信。如果不能满足这些条件则应配置专用网卡及通信软件实现互联。4. PC与PLC互联的结构形式 用户把带异步通信适配器的PC与PLC互联通信时通常采用如图7-12所示的两种结构形式。一种为点对点结构,PC的COM口与PLC的编程器接口或其它异步通信口之间实现点对点链接, 如图7-12a所示。另一种为多点结构,PC与多台PLC共同连在同一条串行总线上,如图7-12b所示。多点结构采用主从式存取控制方法,通常以PC为主站,多台PLC为从站,通过周期轮询进行通信管理。图7
6、-12 常用结构形式a)点对点结构 b)多点结构5. PC与PLC互联通信方式目前PC与PLC互联通信方式主要有以下几种:1)通过PLC开发商提供的系统协议和网络适配器,构成特定公司产品的内部网络其通信协议不公开。互联通信必须使用开发商提供的上位组态软件,并采用支持相应协议的外设。这种方式其显示画面和功能往往难以满足不同用户的需要。2)购买通用的上位组态软件,实现PC与PLC的通信。这种方式除了要增加系统投资外,其应用的灵活性也受到一定的局限。3)利用PLC厂商提供的标准通信口或由用户自定义的自由通信口实现PC与PLC互联通信。这种方式不需要增加投资,有较好的灵活性,特别适合于小规模控制系统。
7、本节主要介绍利用标准通信口或由用户自定义的自由通信口实现PC与PLC的通信FX系列PLC通信协议 三菱PLC FX系统通信PC中必须依据所连接PLC的通信规程来编写通信协议,所以我们先要熟悉FX系列PLC的通信协议。 1)数据格式 FX系列PLC采用异步格式,由1位起始位、7位数据位、1位偶校验位及1位停止位组成,比特率为9600 bps,字符为ASC码。数据格式如图7-14所示。图7-14 数据格式 2)通信命令 FX系列PLC有4条通信命令,分别是读命令、写命令、强制通命令、强制断命令,如表7-2所示。表7-2 FX系列PLC的通信命令表 3)通信控制字符FX系列PLC采用面向字符的传输规
8、程,用到5个通信控制字符,如表7-3所示。表7-3 FX系列PLC通信控制字符表控制字符ASC码功能说明ENQ05HPC发出请求ACK06HPLC对ENQ的确认回答NAK15HPLC对ENQ的否认回答STX02H信息帧开始标志ETX03H信息帧结束标志注:当PLC对计算机发来的ENQ不理解时,用NAK回答。4)报文格式计算机向PLC发送的报文格式如下:STXCMD数据段ETXSUMHSUML其中,STX为开始标志:02H;ETX为结束标志:03H;CMD为命令的ASC码;SUMH、SUML为按字节求累加和,溢出不计。由于每字节十六进制数变为两字节的ASC码,故校验和为SUMH与SUML。数据段
9、格式与含义如下:注:写命令的数据段有数据,读命令数据段则无数据。PLC向PC发的应答报文格式如下:注:对读命令的应答报文数据段为要读取的数据,一个数据占两字节,分上位下位:数据段:对写命令的应答报文无数据段,而用ACK及NAK作应答内容。 5)传输规程 PC与FX系列PLC间采用应答方式通信,传输出错,则组织重发。其传输过程如图7-15所示。图7-15 传输过程PLC根据PC的命令,在每个循环扫描结束处的END语句后组织自动应答,无需用户在PLC一方编写程序。利用VB的MSComm控件编程实现PC与三菱PLC FX系列通信写PC的通信程序可采用汇编语言编写,或采用各种高级语言编写,或采用工控组
10、态软件,或直接采用PLC厂家的通信软件(如三菱的MELSE MEDOC等) 下面利用VB6.0以一个简单的例子来说明编写通信程序的要点。假设PC要求从PLC中读入从D123开始的4个字节的数据(D123、D124),其传输应答过程及报文如图7-16所示。图7-16 传输应答过程及命令报文命令报文中10F6H为D123的地址,04H表示要读入4个字节的数据。校验和SUM30H31H30H46H36H30H34H03 H174H,溢出部分不计,故SUMH=7,SUAIL=4,相应的ASC码为“37H”,“34H”。应答报文中4个字节的十六进制数,其相应的ASC码为8个字节,故应答报文长度为12个字
11、节。 根据PC与FX系列PLC的传输应答过程,利用VB的MSComm控件可以编写如下通信程序实现PC与FX系列PLC之间的串行通信,以完成数据的读取。MSComm控件可以采用轮询或事件驱动的方法从端口获取数据。在这个例子中使用了轮询方法。 1)通信口初始化 Private Sub Initialize() MSComm1CommPort =1 MSComm1Settings = “9600,E,7,1” MSComm1InBufferSize = 1024 MSCommlOutBuffersize = 1024 MSComm1InputLen = 0 MSCommlInputMode = co
12、mInputText MSComm1Handshaking = comNone MSComm1PortOpen = True End Sub 2)请求通信与确认 Private Function MakeHandshaking()As Boolean Dim InPackage As String MSCommlOutBufferCount = 0MSCommlInBufferCount = 0MSCommlOutPut = Chr(H5)DoDoEventsLoop Until MSCommlInBufferCount = 1InPackage = MSCommlInputIf InPack
13、age = Chr(H6) ThenMakeHandShaking = TrueElseMakeHandshaking = FalseEnd IfEnd Function3)发送命令报文Private Sub SendFrame ()Dim Outstring As StringMSCommlOutBufferCount = 0 MSCommlInBufferCount = 0Outstrin = Chr(H2)on10F604Chr(H3)74MSCommlOutput = OutstringEnd Sub4)读取应答报文Private Sub ReceiveFrame()Dim Instr
14、ing As StringDoDoEventsLoop Until MSCommlInBufferCount = 12InString = MSCommlInpultEnd SubPC与S7-200系列PLC通信的连接S7-200系列PLC有通信方式有三种:一种是点对点(PPI)方式,用于与该公司PLC编程器或其它人机接口产品的通信,其通信协议是不公开的。另一种为DP方式,这种方式使得PLC可以通过Profibus-DP通信接口接入Profibus现场总线网络,从而扩大PLC的使用范围。最后一种方式是自由口通信(Freeport)方式,由用户定义通信协议,实现PLC与外设的通信。以下采用自由口
15、通信方式,实现PC与S7-200系列PLC通信。PC与S7-200系列PLC通信连接PC为RS232C接口,S7-200系列自由口为RS485。因此PC的RS232接口必须先通过RS232/RS485转换器,再与PLC通信端口相连接,连接媒质可以是双绞线或电缆线。西门子公司提供的PC/PPI电缆带有RS232/RS485转换器,可直接采用PC/PPI电缆,因此在不增加任何硬件的情况下,可以很方便地将PLC和PC的连接,如图7-17所示。也可实现多点连接。图7-17 PC与S7-200系列PLC的连接S7-200系列PLC自由通信口初始化及通信指令在该通信方式下,通信端口完全由用户程序所控制,通
16、信协议也由用户设定。PC机与PLC之间是主从关系,PC机始终处于主导地位。PLC的通信编程首先是对串口初始化,对S7-200PLC的初始化是通过对特殊标志位SMB30(端口0)、SMB130(端口1)写入通信控制字,设置通信的波特率,奇偶校验位、停止位和字符长度。显然,这些设定必须与PC的设定相一致。SMB30和SMB130的各位及含义如下:其中,校验方式:00和11均为无校验、01为偶校验、10为奇校验;字符长度:0为传送字符有效数据是8位、1为有效数据是7位;波特率:000为38400baud、001为19200baud、010为9600baud、011为4800baud、100为2400
17、baud、101为1200baud、110为600baud、111为300baud;通信协议:00为PPI协议从站模式、01为自由口协议、10为PPI协议主站模式、11为保留,缺省设置为PPI协议从站模式。XMT及RCV命令分别用于PLC向外界发送与接收数据。当PLC处于RUN状态下时,通信命令有效,当PLC处于STOP状态时通信命令无效。XMT命令将指定存储区内的数据通过指定端口传送出去,当存储区内最后一个字节传送完毕,PLC将产生一个中断,命令格式为 XMT TABLE,PORT,其中PORT指定PLC用于发送的通信端口,TABLE为是数据存储区地址,其第一个字节存放要传送的字节数,即数据
18、长度,最大为255。RCV命令从指定的端口读入数据存放在指定的数据存储区内,当最后一个字节接收完毕,PLC也将产生一个中断,命令格式为RCV TABLE,PO RT,PLC通过PORT端口接收数据,并将数据存放在TBL数据存储区内,TABLE的第一个字节为接收的字节数。在自由口通信方式下,还可以通过字符中断控制来接收数据,即PLC每接收一个字节的数据都将产生一个中断。因而,PLC每接收一个字节的数据都可以在相应的中断程序中对接收的数据进行处理。西门子S7-200系列PLC与PC通信程序流程图及工作过程在上述通信方式下,由于只用两根线进行数据传送,所以不能够利用硬件握手信号作为检测手段。因而在P
19、C机与PLC通信中发生误码时,将不能通过硬件判断是否发生误码,或者当 PC与 PLC工作速率不一样时,就会发生冲突。这些通信错误将导致PLC控制程序不能正常工作,所以必须使用软件进行握手,以保证通信的可靠性。由于通信是在PC机以及PLC之间协调进行的,所以PC机以及PLC中的通信程序也必须相互协调,即当一方发送数据时另一方必须处于接收数据的状态。如图7-18、图7-19所示分别是PC、PLC的通信程序流程。图7-18 PC机通信程序流程图图7-19 S7-PLC通信程序流程图通信程序的工作过程:PC每发送一个字节前首先发送握手信号,PLC收到握手信号后将其传送回PC,PC只有收到PLC传送回来
20、的握手信号后才开始发送一个字节数据。PLC收到这个字节数据以后也将其回传给PC,PC将原数据与PLC传送回来的数据进行比较,若两者不同,则说明通信中发生了误码,PC机重新发送该字节数据;若两者相同,则说明PLC收到的数据是正确的,PC机发送下一个握手信号,PLC收到这个握手信号后将前一次收到的数据存入指定的存储区。这个工作过程重复一直持续到所有的数据传送完成。 采用软件握手以后,不管PC与PLC的速度相差多远,发送方永远也不会超前于接收方。软件握手的缺点是大大降低了通信速度,因为传送每一个字节,在传送线上都要来回传送两次,并且还要传送握手信号。但是考虑到控制的可靠性以及控制的时间要求,牺牲一点
21、速度是值得的,也是可行的。PLC方的通信程序只是PLC整个控制程序中的一小部分,可将通信程序编制成PLC的中断程序,当PLC接收到PC发送的数据以后,在中断程序中对接收的数据进行处理。PC方的通信程序可以采用VB、VC等语言,也可直接采用西门子专用组态软件,如STEP7、WinCC。PC与欧姆龙CPM1A系列PLC的连接如图7-21a所示的点对点结构的连接方式,称为1:1HOST Link通信方式。CPM1A系列PLC没有RS232C串行通信端口,它是通过外设通信口与上位机进行通信的,因此CPM1A需配置RS232C通信适配器CPM1-CIF01(其模式开关应设置在“HOST”)才能使用。1:
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
10 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- PLC PC 个人 通讯 概述