欧姆龙PLC与三菱PLC之间的通信
详细内容
1 引言
在现代工业中,plc通信联网功能的应用日益广泛。在实际生产现场,各个工位上可能使用不同厂家生产的plc,它们之间通信联网一直是工程上的一个难题。欧姆龙plc所特有的通信协议宏功能可以很好地解决这个问题[1] 。欧姆龙中小型plc,如cqm1h、c200hα、cj1、cs1等机型,均支持通信协议宏功能,可以实现与其他厂家的plc通信。协议宏通信方式编程简单、易于实现,是不同厂家plc通信的一种简便易行的方法。
本文选用欧姆龙的c200he-cpu42型plc,使用通信协议宏,与三菱的fx2n-64mr型 plc进行通信。欧姆龙plc为上位机,三菱 plc则为下位机。
2 网络结构
网络结构如图1所示,主机c200he-cpu42作为上位机,使用c200hw-06-ev1型通信板,通信板上带有rs-232c与rs-422a/485串行通信口各一个,都支持通信协议宏功能[2]。三菱fx2n-64mr作为下位机,机体上加装fx2n-485-bd串行通信功能扩展板,支持三菱计算机链接(puter link)通信协议[3]。1台上位plc最多可连接16台下位plc,上位plc与下位plc通过rs-485串行端口连接。通信过程中,上位plc首先发出指令并启动通信,下位plc收到指令并执行,然后将执行结果返回上位plc。下位plc之间不能进行直接通信。
图1 网络结构
3 欧姆龙通信协议宏
欧姆龙的通信协议宏由通信序列(sequence)组成,由pmcr指令调用,与带有rs-232c或rs-422a/485端口的各种外围设备交换数据。通信协议宏支持软件(cx-protocol)的对话式菜单使通信序列易于登记。软件支持x-on和x-off、rts和cts等控制方法,允许传送任何带有校验码(如sum,lrc或crc)和帧长度的数据信息。一个接收阵列(matrix),最多可以设置15种类型的期望的接收信息,而每个期望接收信息都可以包含确定下一步要执行的过程和出现信息接收错误时要执行的故障处理命令[4]。
4 三菱计算机链接通信协议
三菱计算机链接通信协议用于计算机与plc之间的通信,计算机发出读写plc数据的命令帧,plc收到后自动生成和返回响应帧,但是计算机程序仍需用户编写[3]。上位计算机通过安装在各台plc 上的串行通信功能扩展板连接多台plc构成网络。专用通信协议有两种格式(format 1和format 4),区别在于字符串最后是否添加cr/lf码。本文采用format 1通信格式,如图2所示。
图2 format 1通信格式
地址决定计算机访问哪一台plc,同一网络中各plc的地址不能重复,设定范围为00h~0fh。plc号用来识别plc的cpu类型。指令用来指定操作的类型,如读、写等操作,由2个ascii码组成。校验码是从地址开始,校验码之前的所有字符的十六进制数的ascii码求和,取和的低两位数据的ascii码。
计算机与plc之间的数据流有3种形式:计算机从plc中读数据、计算机向plc写数据和plc向计算机写数据。本文用到了前两种数据流形式。
(1)计算机从plc读数据操作
命令:enq+地址+plc标识号+指令+等待时间+字符区域a+校验码
响应:stx+地址+ plc标识号+字符区域b+etx+校验码 (正确时)
nak+地址+ plc标识号+错误代码 (错误时)
计算机收到响应信号后发出确认信号:ack+地址+ plc号或nak+地址+ plc号
(2)计算机向plc写数据操作
命令:enq+地址+plc标识号+指令+等待时间+字符区域c+校验码
响应:ack+地址+ plc标识号 (正确时)
nak+地址+ plc标识号+错误代码 (错误时)
字符区域中,a为要读取的存储区的开始位置和字节数;b为返回的存储区的值;c为要写入的存储区的开始位置和数值。校验码用来校验数据是否正确。
5 通信协议宏组态
欧姆龙plc与三菱plc通信之前,先要生成通信协议宏。下面以从三菱plc的x位元件组读数据和向三菱plc的y位元件组写数据为例,介绍协议宏组态方法。
5.1 创建通信协议宏
根据三菱计算机链接通信协议的格式要求,在cx-protocol软件上创建工程,如图3所示。创建"read"和"write"两个通信序列(sequence)。接收阵列(matrix)用于接收响应数据。