×
工业控制 > 工业自动化 > 详情

PLC与MC9S08PT60PB的PPI协议分析

发布时间:2020-06-01 发布时间:
|

0 引言

PLC(可编程程序控制器)是一种极为普遍的、应用于各种环境的工业控制器。西门子公司的PLC通过用户存储的应用程序来控制生产过程,具有可靠性高、稳定性好、实时处理能力强、价格低廉等优点。为工业自动化提供了几乎完美的现代化自动控制装置。但是PLC不具备键盘、显示器等人机交互设备,不能实时地对控制参数进行修改及显示系统的运行状态。西门子公司的TD系列的文本显示器价格昂贵而且在低温下无法正常工作。另一方面,MC9S08PT60PB具有价格较低廉、使用方便、功能多样等优点。所以PLC可以和MC9S08PT60PB结合使用,以弥补PLC的缺陷。所以常常在一个控制系统中出现MC9S08PT60PB和PLC共存的情况,它们之间的通信应用就具有非常重要的现实意义。

1 PLC通信方式与MC9S08PT60PB芯片

PLC具有丰富的串行通讯方式,支持多种通信协议,如点对点接口协议(PPI协议)、多点接口协议(MPI协议)、PROFIBUS协议以及自由通信协议等。其中点对点接口协议是西门子公司研究开发的,是一种只需要在上位机中按照通信要求编程就可以实现数据传输的通信协议。

MC9S08PT60PB是Freescale公司产品系列中最新的8位MCU,它具有集成度高、外围设备丰富、稳定性高、开发周期短、成本低、兼容性好等特点而被广泛应用。它更适合低功耗、高性能的使用环境,如便携式电子产品。MC9S08PT60PB资源丰富是最为突出的性能,RAM内存高达4kB,FLASH存储器容量可达60kB,高度集成了4个串行通信端口(SCII、SCI2、SPI、IIC),最多达8个定时器、8通道的10位A/D转换器。丰富的资源利于现场监控系统通信。

2 PLC与MC9S08PT60PB通信的接口电路

西门子PLC的CPU上的通信接口是RS-485D型连接器,PLC输出RS-485信号。系统采用MC9S08PT60PB微控制芯片,它的串行口输出是TTL电平,实现PLC与MC9S08PT60PB之间的通信,需要进行RS-485与TTL电平的转换。该转换可以通过先将MC9S08PT60PB的串行口与SN75176芯片相接。SN75176芯片是TI公司的一款用于RS-485通信的低功耗半双工收发器件,芯片内部集成了一个驱动器和一个接收器,符号RS-485通信标准,具有高驱动能力。MC9S08PT60PB与S7-200 PLC的RS-485口进行通信,其硬件连接图如图1所示。


3 PPI通信协议的通信程序

3.1 PPI通信协议

PPI协议中上位机与PLC使用主从方式进行通信,上位机作为主设备,PLC作为从设备。上位机按照通信任务,向PLC发送一定格式的数据通信命令。PLC向上位机发出应答信号,这时上位机再向PLC发送确认命令,PLC收到确认命令后,开始执行命令。完成通信任务。

MC9S08PT60PB中的程序是在Code Warrior IDE开发环境中完成的,由PC上位机下载到MC9S08PT60PB中之后,它作为主设备。PLC是被动通信,不需要编制通信程序。通信程序中主要包括:串口初始化命令、发送命令、接收命令MC9S08PT60PB使用的查询方式,MC9S08PT60PB作为主站根据实际需要实时与PLC从站通信,完成通信数据的发送或接收。

3.2 MC9S08PT60PB与PLC中的PPI通信协议实现程序

3.2.1 初始化串口


3. 2.2 报文格式

报文数据长度和重复数据长度为自上位机自己的地址至数据单元的数据长度,校验码为上位机自己的地址至数据单元数据的和校验,只取其中的末字节值。在读写PLC的变量数据中,读数据的功能码为6CH,写数据的功能码为7CH。

对于一次读取一个数据,读命令都是33个字节。前面的0~21字节是相同的,0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21开始符长度长度开始符站号源地址功能码协议识别远程控制冗余识别冗余识别协议数据单元参考参数长度参数长度数据长度数据长度04读05写变量地址数。

字节22 23 24 25 26 27 28 29 30 31 32功能读取长度数据个数存储器类型偏移量校验码结束符。

字节22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40写入位置及值长度个数类型偏移量位数值校验码结束符。[page]

PPI协议上位机向PLC发送读写请求时的报文格式,每次读一个数据:

length为读取数据长度,01:one bit,02:one byte,04:one word(two bytos),06:one doub word(fourbytes);mem_flag为存储器类型。01:V存储器,00:其它;mem_type为存储器类型,04:S,05:SM,06:AI,07:AQ,IE:C,81:I,82:Q,83:M,84:V,lF:Taddr为要读取或写入的地址值。如果为bit、Byte[32]=0x03 Byte[34]=0x01;byte数据,Byte[32]=0x0Byte[34]=0x08 Byte[35]为要写入的值,Byte[36]为0x00,如果为word数据,Byte[35]和Byte[36]为要写入的值Byte[32]=0x04;Byte[34]=0x10;Byte[35-38]就是写入的值,Byte[39]=检验码,Byte40=16H,结束。X0为校验和。X1为写入的值。

4 软件流程设计

PPI通信流程图如图2所示。


程序首先执行初始化串口程序,完成串口输入输出状态的设定、寄存器初始化等。然后开始PLC发送读写请求,MC9S08PT60PB接收到指令后,回复指令,然后读写数据,完成通信。

5 结论

PLC与MC9S08PT60PB利用了PPI串行通信很好的发挥PLC稳定可靠的性能、抗干扰能力强的优势省略了PLC的通讯程序编写,而且还发挥了MC9S08PT60PB使用灵活、适应性强的优点,两者相互结合取长补短。同时使用西门子公司的PPI协议解决了MC9S08PT60PB与PLC之间的数据交换问题。实践证明该方法比自由口通信协议简洁,使用方便,用途广泛。

 

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
VxWorks下的异步通用定时器设计