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

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

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

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

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

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

摘要随着微电子技术和计算机术的进步可编程控制器以其可靠性高、抗干扰强、开发周期短已经成为一种较为普及的、适应多种应用环境的工业控制器。现已从最初的简单顺序控制、逻辑控制发展到可进行模拟量控制、位置控制特别是PLC与PLC、PLC与计算机通信功能的实现可组成多级控制系统形成工厂自动化网络。PLC可以多种方式如直接采用现有的组态监控软件与上位监控机通信但针对小规模的控制系统找到一种高性价比的通信方法具有积极的实际意义。本文就是讨论如何利用Modbus通信协议来实现施耐德电器公司的NanoPLC与上位监控PC机的通信。关键词modbus;plc;自动化网络;pc1硬件描述及串口设置1.1接口电路设计PLC与PC间实现通信可使二者互补功能上的不足PLC用于控制方面既方便又可靠而PC机在图形显示、数据处理、打印报表以及中文显示等方面有很强的功能。因此各PLC制造厂家纷纷开发了适用于本公司的各种型号PLC机通信的接口模块不同的通信方式有着不同的成本价格和不同的适用范围。NanoPLC的CPU单元本身带有1个RS-485扩展口可不配备专用通讯模块而通过此接口与上位机进行串行通信。在此介绍一种通过PLC的RS485扩展口与PC机的RS-232串行口进行通信的方法。由于NanoPLC的扩展口采用RS-485标准RS485是RS422的变型。RS422为全双工可同时发送与接收;RS485则为半双工在某一时刻1个发送另1个接收。RS485是一种多发送器的电路标准允许双导线上1个发送器驱动32个负载设备负载设备可以是被动发送器、接收器或收发器。而计算机的串行口采用RS-232标准。因此作为实现PLC与计算机通信的接口电路必须将RS-485标准转换成RS-232标准。我们利用SC-485转换器实现RS485与RS232之间的转换。转换电路如图1所示。图1RS485与RS232转换电路图1.2PLC串行口设置施耐德的NanoPLC对通信参数的设置通过设置扩展口来实现系统采用PC机作为Modbus通信网络主站NanoPLC作为从站。通信格式设置如下:波特率4800bps图2PLC串行口设置8位数据位1位停止位无奇偶校验。如图2所示。1.3PC机的串口初始化在微机数据通信中经常使用大规模集成串行接口电路芯片它们的种类和型号很多如UART、USRT、USART等。能完成异步通信的硬件电路称为UART。作为可编程的异步串行通信芯片UART应根据协议的要求对其初始化。可编程串行异步通信控制器8250是IBMPC串行通信控制器I/O接口电路的核心通过对8250的编程可以控制串行数据传送格式和速度。PC机有2个串行通信接口COM1和COM2。若选COM1则8250各寄存器地址为3F8H~3FEH;选COM2则8250各寄存器地址为2F8H~2FEH。这里介绍用TubroC直接对PC机中的UART8250中各寄存器进行初始化。本例采用COM2口初始化如下:outportb(0x2fb0x80);/*btp=4800*/outportb(0x2f80x18);outportb(0x2f90x0);outportb(0x2fb0x1b);/*initialize(8、1、n)*/outportb(0x2f90x0);outportb(0x2fc0x3);2软件描述2.1系统通信协议NanoPLC采用Modbus通信协议。任何根据此通信协议进行通信的主、从机之间进行数据信息交换时信息格式都必须遵守通信协议所规定的格式。Modbus的数据交换模式有2种1种为ASCII编码制1种为RTU编码制。本例采用RTU码传输模式它包括一些特殊标志码、PLC站号、呼叫字和校验码等其数据帧格式如附表。(1)帧开始:数据帧以至少3.5个字符间隔时间(T1-T2-T3-T4)标志开始和结束。整个信息帧必须以连续的信号进行传输从而保证CRC的校验正确。(2)从站地址:1个字节。各从站识别码站号取值范围01H-F7H共有247种不同站。但Nano系列PLC通讯网络最多允许32个从站。(3)功能号:1个字节。表示主站对从站的各种操作工作主机发功能号给从机如果从机响应正常则回送相同的功能码;如有错误发生则将原功能码符号位置“1”后回送并将错误代码写入数据区回送。各功能号具体功能如下:01或02:读n个内部位%Mi03或04:读n个内部字%Mwi05:写1个内部位%Mi06:写1个内部字%Mwi15:写n个内部位%Mi16:写n个内部字%Mwi(4)数据区:数据区由一串2位16进制数据组成从00-FFH。如果通信正确数据区存放PLC回应上位机的信息;如发送数据有误则返回异常代码。NanoPLC处理的2种异常代码:*01:功能未知(PLC不支持的请求)如发送