- 1、本文档共18页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
COMLIB 通讯程序示例
1. COMLIB 通讯程序示例
1. 1 PC ( COM1 和 COM2 ) 按字节发送 - 接收
全局变量
VAR_GLOBAL
(* Test COM1 at PC Interface COM1 *)
COM1InData AT %IB100 : PcComInData;
COM1OutData AT %QB100 : PcComOutData;
COM1RxBuffer : ComBuffer;
COM1TxBuffer : ComBuffer;
(* Test COM2 at PC Interface COM2 *)
COM2InData AT %IB200 : PcComInData;
COM2OutData AT %QB200 : PcComOutData;
COM2RxBuffer : ComBuffer;
COM2TxBuffer : ComBuffer;
END_VAR
后台程序:ComBackground
PROGRAM ComBackground
VAR
COM1Control : PcComControl;
COM2Control : PcComControl;
END_VAR
COM1Control( COMin := COM1InData ,
COMout := COM1OutData ,
TxBuffer := COM1TxBuffer ,
RxBuffer := COM1RxBuffer );
COM2Control( COMin := COM2InData ,
COMout := COM2OutData ,
TxBuffer := COM2TxBuffer ,
RxBuffer := COM2RxBuffer );
测试程序:TESTCOM1
PROGRAM TESTCOM1
VAR
SendData : ARRAY[0..9] OF BYTE := 1,2,3,4,5,6,7,8,9,10;
RecData : ARRAY[0..9] OF BYTE;
COM1Send : SendByte;
COM2Rec : ReceiveByte;
Delay : TON;
I : BYTE;
Index : BYTE := 0;
END_VAR
(* 按字节方式发送数据到 COM1 *)
Delay(IN := TRUE,PT := T#100MS);
IF Delay.Q THEN
Delay(IN := FALSE);
FOR i := 0 TO 9 DO
COM1Send( SendByte := SendData[i], TxBuffer := COM1TxBuffer);
END_FOR
FOR i := 0 TO 9 DO
SendData[i] := SendData[i] + 1;
END_FOR
END_IF
(* 按字节方式从 COM2 接收数据 *)
COM2Rec( RxBuffer := COM2RXbuffer);
IF COM2Rec.ByteReceived THEN
RecData[Index] := COM2Rec.ReceivedByte;
Index := Index + 1;
IF Index = SIZEOF(RecData) THEN
Index := 0;
END_IF
END_IF
主程序:MAIN
PROGRAM MAIN
VAR
END_VAR
TESTCOM1;
1.2 PC ( COM1 和 COM2 ) 按字符串发送-接收
全局变量 : 同上
后台程序:ComBackground 同上
测试程序:TESTCOM1
PROGRAM TESTCOM1
VAR
SendString : STRING := $$Hello, welcome to BECKHOFF !$$;
RecString : STRING;
(注:可变换为无 Prefix 和 Suffix 示例,应加:TIMEOUT := T#80MS )
Prefix : STRING := $$;
Suffix : STRING := $$;
TimeOut : TIME := T#0MS;
Reset : BOOL;
COM1SString : SendString;
COM2RString : ReceiveString;
Delay : TON;
END_VAR
(* 按字符串方式发送数据到 COM1 *)
Delay(IN :=
文档评论(0)