预览加载中,请您耐心等待几秒...
1/4
2/4
3/4
4/4

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

第3期PC与PLC的串口通信及编程实现 PC与PLC的串口通信及编程实现 黄植功 (广西师范大学物理与电子工程学院,广西桂林541004) 摘要:在自由口模式下,通信协议由用户自己的梯形图程序控制。用户可以使用梯形图程序调用各种子 程序,来进行接收中断、发送中断、发送指令(XMT)、接收指令(RCV)等通信控制操作。研究了在 自由端口模式下PC与S7-200型PLC之间的通信,并采用VisualBasic编程来实现上位机与下位 机之间的通信。 关键词:VisualBasic;自由端口模式;PLC通信;串口通信 中图分类号:TP312文献标识码:A文章编号:1003-7551(2007)03-0035-04 1引言 由于具有编程方法简单易学、功能强、性能价格比高、可靠性高、抗干扰能力强、体积小、能耗低、硬件 配套齐全、设计调试安装维护方便等突出优点,可编程逻辑控制器(PLC)已经广泛地应用在发达国家所有的工 业部门,主要应用在数字逻辑控制、运动控制、闭环过程控制、数据处理和联网通信等方面。在联网通信方面, PLC与其他智能控制设备一起,可以组成“集中管理、分散控制”的分布式控制系统。在这种工业控制系统中, 为了避免通信各方争用通信线路,PC与PLC之间的通信一般采用主从方式,通常采用计算机(PC)作为上位机 负责完成数据分析、处理和存储、设备状态显示和打印输出等功能以实现对分布在工业现场的被控制系统进行 集中的实时监测与控制;PLC作为下位机使用,承担执行上位机的输出指令、现场数据采集和设备运转状态识 别等任务。本文研究了在自由端口模式下PC与S7-200型PLC之间的通信,并采用VisualBasic编程来实现上 位机与下位机之间的通信。 2PLC与PC的电缆连接和电缆的切换时间 S7-200的通信接口为RS-485,PC可以采用RS-232通信接口,RS-232/PPI多主站电缆可以连接PC与S7-200 型PLC,实现S7-200CPU与PC的通信。由于使用RS-232/PPI电缆,因此在S7-200CPU的用户程序中应考虑 电缆的切换时间,切换时间因波特率的不同而不同,例如,如果采用9600bit/s的波特率,则电缆的切换时间 为2ms,电缆上DIP开关设置为010,如果采用19200bit/s的波特率,则电缆的切换时间为1ms。S7-200CPU 接收到RS-232设备的请求报文后,到它发送响应报文的延迟时间必须大于电缆的切换时间。在程序中,可以用 中断实现切换延时。同理,如果S7-200CPU发送请求报文,在接收到RS-232设备的响应报文后,S7-200CPU 下一次发出报文的延时时间也必须大于电缆的切换时间。在中断程序中,必须考虑电缆的切换时间,例如当采 用19200bit/s的波特率时,通过定时5ms来提供PPI电缆接收/发送模式的切换时间,用MOVB5,SMB34来实 现定时5ms。 3通信数据单元的结构 *收稿日期:2007-07-04 35 第28卷第3期广西物理GUANAGXIWULIVol.28No.32007 在自由口模式下,通信协议是由用户自己定义的,由梯形图程序控制。PC与PLC通信的基本单元为“帧”。 PC通过串口将指令数据帧发送到PLC的PORT0(或PORT1)口,PLC通过RCV指令或字符中断来控制接收指令数 据帧,然后对指令数据帧进行译码,译码后调用相应的读/写子程序实现指令要求的相关操作,比如启动或停止 等,并返回指令执行的状态信息。 需要指定PLC的接收缓冲区、译码区、发送缓冲区和用于存放BCC码等的缓冲区。当PC发指令时,指令数 据写入指定的目标寄存器。当PLC返回信息时,可以从数据区读取事先写入的数据。此外我们必须规定数据帧 的结构,包括PC的指令格式和PLC的反馈信息格式,PC与PLC在发送和接收数据时应采用相同的数据帧格式。 例如,PC的指令格式为:起始字符+指令类型(读/写)+目标PLC站地址+目标寄存器地址+读/写字节数M+ 要写入的数据+BCC校验码+结束字符,每个部分的字节长度是固定。起始字符标志着指令的开始,用ASCII码 小写字符表示,结束字符标志着指令的结束,用ASCII码大写字符表示,比如分别用"j"和"J",各占1个字节; 指令类型分写操作和读操作2种,分别向PLC写入和读出数据;在PLC内部可以用4个字节来表示一个寄存器 的地址,由于采用ASCII码表示,所以需要8个字节;读/写字节数M,对于读操作,一般是读回从目标寄存器 开始的连续的固定字节数(比如8个)的数据,对于写操作,需要由PC指定,但不超过事先指定的最大字节数; 要写入的数据区必须填满,但只有前M个字节的数据会被写入目标寄存器;BCC校验码用于判断传输的正确性, BCC校验码的