台达ST:自定义串行通讯传送与接收指令COMRS程序范例三

程序范例三:

接收模式参数 2(特定字符为结尾字符)且设定为 8 位处理模式(SM106=ON)

  1. 设定要传送的数据长度 D20=0,表示 PLC 不传送数据直接进入接收阶段

  2. 设定 D10=16#0002(模式参数 2),D11=16#000A(表示结尾字符 16#0A)

  3. 启动条件接点 M0

  4. PLC 等待接收外部机器回传的数据内容(D20=0 不传送数据给外部机器)

  5. 外部机器发送数据给 PLC

外部机器→PLC 31 32 33 34 35 0A

  1. 读取 D200=6(接收数据数),接收数据内容为 D201=16#0031、D202=16#0032、D203=16#0033、

D201=16#0034、D202=16#0035、D203=16#000A

  1. 读取 SM100=ON(接收完毕)

  2. 如欲再次传送,需手动将完成标志 SM100 设为 OFF,即可再次执行。

注:当 PLC 进入接收状态,接收中标志 SM98 为 ON,开始接收数据到数据后,直至收到设定的特定结尾字符(16#0A)为止,若完成接收则完成标志 SM100 为 ON(若超过通讯逾时时间仍未收到特定结尾字符,则通讯逾时标志 SM104 为 ON)。

编写ST程序如下:

cs 复制代码
/*范例程序三*/

SM106:=TRUE;										//8位模式
通讯端口_COM1:=1;								//通讯端口号:com1
接收数据结束条件参数设定:=2;				//模式参数1, D10
D11:=16#000A;											//表示结尾字符 16#0A
发送数据长度:=0;										//D20,PLC不发送数据给外部

IF M0 THEN
	//M0:=FALSE;
	//SM100:=FALSE;								//如欲再次传送,需手动将完成标志 SM100 设为 OFF
	COMRS( 通讯端口_COM1 , D100 , 发送数据长度 , D200 , 接收数据结束条件参数设定 );//发送数据,D200是接收数据的起始地址。
	
	//如果收到数据SM100会ON,清除:触发条件和收到数据标志。
	IF SM100 THEN
		SM100:=FALSE;
		M0:=FALSE;
	END_IF;
	
END_IF;

运行程序并用串口助手发送数据

在PLC上监控到:

通过实际案例的验证之后,我们再回头看手册上关于模式2的介绍,就很容易理解了!