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、数据存储系统的设计