1、引言
和利时LM系列PLC是杭州和利时公司自主研发的小型一体化PLC产品。LM系列PLC具有可靠性高、指令丰富、通讯能力强等特点。其支持六种编程语言,包括LD、IL、FBD、SFC、ST、CFC,能够适应多种PLC编程基础的人群。一些大的控制系统具有很多现场设备,其中一部分现场设备可能不支持标准的通讯协议,但是还需要与第三方控制设备进行数据通讯,任何一个厂商的PLC都不可能支持所有现场设备的数据通信协议。如何实 PLC与非标准协议的第三方设备进行互联呢,LM系列PLC推出了自由口的通讯方式,可以实现与任何协议的第三方设备进行互联。本文介绍的是LM系列PLC通过自由口与 Flash存储设备进行数据通讯。
2、LM系列PLC的通讯方式
LM系列PLC支持多种通讯方式,如Profibus DP、以太网、自由口通讯。LM系列PLC的CPU模块本体集成了一个RS232通讯口和一个RS485通讯口,RS232和RS485支持标准的Modbus RTU、LM专有协议和自由口通讯协议。用户可以用图程序设定通讯口的协议、通讯速率、数据位、校验、发送数据和接收数据。下图为和PLC自由口相关的功能块指令。
图1为设定自由口通讯速率、数据位、校验的指令;图2为恢复Modbus RTU和LM专有协议的指令,同时也可以设定通讯速率、数据位和校验;图3为数据发送指令;图4为数据接收指令。同时软件中有CRC校验的功能块指令,可以进行数据校验。也可以通过ST语言方便的编写校验程序。以计算CRC 校验码为例,下面是变量声明部分:
FUNCTION_BLOCK Generate_CRC
VAR_INPUT
pData:POINTER
TO BYTE;
byteCounter:WORD;
END_VAR
VAR_OUTPUT
CRC_Code:WORD;
FINISH:BOOL:=FALSE;
END_VAR
VAR
Reg16: WORD;
j: BYTE;
i: WORD;
mval: WORD;
temp_byte: BYTE;
flg: WORD;
END_VAR
以下是ST语言的程序代码部分:
Reg16 := 16#FFFF;
mval := 16#A001;
FOR i:=0 TO byteCounter-1 BY 1 DO
temp_byte:=pData︿;
pData:=pData+1;
Reg16:=(Reg16 XOR temp_byte);
FOR j:=0 TO 7 BY 1 DO
flg := 0;
flg:=(Reg16 AND 16#0001);
Reg16 := SHR(Reg16,1);
IF (flg = 1) THEN
Reg16:=Reg16 XOR mval;
END_IF;
END_FOR;
END_FOR;
CRC_Code:=Reg16;
FINISH:=TRUE;
3、数据存储系统的设计
该PLC控制系统是应用在节能汽车上,通过PLC对液压回路的控制使汽车达到降低油耗的目的,在该车的试验阶段,需要把运行过程中的一些过程数据进行记录。当时提出了三种设计方案,第一种方案是对PLC进行改造,在内部增加一条FLASH芯片,修改PLC的底层程序,实现数据的存储;第二种方案是通过GPRS收发器把数据上传到远程PC;第三种方案是通过自由口与U盘读写模块进行通讯,把数据实时写入U盘中。我们对运行环境进行了现场考察和反复研究,在可靠性、稳定性、方便性等方面做了大量工作,权衡利弊,最终选择了方案三进行实施。
Flash存储设备首先要配置各项参数,包括接口方式、功能设置、通讯速率等,如图5所示:
图5 模块配置
PLC进行压力、流量、速度等一些参数的采集,并把数据转换为ASII码的形式进行实时存储。然后通过自由口对U盘读写模块发送指令,U盘读写模块对发送的指令进行响应,并完成相应的读写U盘操作。系统要求在每组数据后面进行时间记录,所以PLC在每次数据发送的同时把时间写在文件中,程序流程图如图6所示:
图6 程序流程图
4、结论
经过长时间的应用证明,数据存储系统的稳定性很好,这种数据存储的实现方式大大节省了系统的成本,且实现起来较为方便,可以大力推广。可见,LM系列PLC的自由口应用起来相当灵活,可以方便的和第三方设备进行通讯。