- 工业机器人编程指令详解
- 黄风编著
- 1550字
- 2020-08-28 00:51:04
2.5 通信指令
(1)指令格式
Open——通信口=ON。
Close——通信口=OFF。
Print#——以ASCII码输出数据,结束码CODE为CR。
Input#——接收ASCII码数据文件,结束码CODE为CR。
On Com GoSub——根据外部通信口输入数据,调用子程序。
Com On——允许根据外部通信口输入数据进行“插入处理”。
Com Off——不允许根据外部通信口输入数据进行“插入处理”。
Com Stop——停止根据外部通信口输入数据进行“插入处理”。
(2)指令例句
Open"COM1□"As# 1'——开启通信口COM1并将从通信口COM1传入的文件作为1 Close# 1'——关闭1号文件 Close'——关闭全部文件 Print# 1□"TEST"'——输出字符串"TEST"到1 Print# 2□"M1= "□M1'——输出字符串"M1= "到2 PRINT# 3,P1'——输出P1点数据到3号文件。例:如果P1点数据为X= 123.7,Y= 238.9,Z=33.1,A= 19.3,B= 0,C= 0,FL1= 1,FL2= 0,则输出数据为"(123.7,238.9,33.1,19.3,0,0)(1,0)"+ CR Print# 1,M5,P5'——输出变量M5和P5点数据到1 则输出数据为:"8,(123.7,238.9,33.1,19.3,0,0)(1,0)"+ CR Input# 1,M3'——输入接收指令。指定输入的数据= M3。例:如果输入数据= "8"+ CR,则M3= 8 Input# 1,P10'——输入接收指令。指定输入的位置数据= P10。例:如果输入数据为"(123.7,238.9,33.1,19.3,0,0)(1,0)"+ CR,则P10为(X= 123.7,Y= 238.9,Z= 33.1,A= 19.3,B= 0,C= 0,FL1= 1,FL2= 0) Input# 1,M8,P6'——输入接收指令。指定输入的数据代入M8和位置点P6。例:如果输入数据为"7,(123.7,238.9,33.1,19.3,0,0)(1,0)"+ CR 则M8= 7,P6为(X= 123.7,Y= 238.9,Z= 33.1,A= 19.3,B= 0,C= 0,FL1= 1,FL2= 0) On Com(2)GoSub * RECV'——根据从外部通信口COM2输入指令调用子程序* RECV Com(1)On'——允许通信口COM1工作 Com(2)Off'——关闭COM2通信口 Com(1)Stop'——停止COM1通信口的工作(保留其状态)
以下各节对通信指令进行详细解释。
2.5.1 Open——通信启动指令
(1)指令格式
Open,“<通信口名或文件名>”[For<模式>]As[#]<文件号码>。
(2)术语说明
①<通信口名或文件名> 指定通信口或“文件名称”。
②<模式> 有Input/Output/Append模式(省略即为随机模式)。
③<文件号码> 设置文件号(1~8)。
(3)程序样例(指定通信口)
1 Open"COM1:"As# 1'——开启通信口COM1。从通信口COM1传入的文件作为1 2 Mov P_01 3 Print# 1,P_Curr'——将"P_C Curr(当前位置)输出,假设以"(100.00,200.00,300,00,400.00)(7,0)"格式输出 4 Input# 1,M1,M2,M3'——以ASCII码格式接收从通信口CM1传入的101.00,202.00,303.00"外部数据 5 P_01.X= M1'——对P_01.点的X赋值 6 P_01.Y= M2'——对P_01.点的Y赋值 7 P_01.C= Rad(M3)'——对P_01.点的C赋值 8 Close'——关闭通信口 9 End
(4)程序样例(指定通信口)
1 Open"temp.txt"For Append As# 1'——打开文件名为temp.txt的文件,Append模式,指定temp.txt为1#文件 2 Print# 1,"abc"'——输出字符串"abc"到1 3Close# 1'——关闭1
通信口的通信方式可以用参数设置,参见图2-13。
图2-13 用参数设置通信口的通信方式
本参数设置了通信口COM1~COM8的通信方式。例如:COM1通信口的通信方式为RS232。
2.5.2 Print——输出字符串指令
(1)指令格式
Print □ #<文件号> □[<式1>]…[<式2>]
①<文件号> 即Open指令指定的“文件号”。
②<式> 数值表达式、位置表达式、字符串表达式。
(2)指令例句
输出信息到文件“temp.txt”。
1 Open"temp.txt"For APPEND As# 1'——将文件"temp.txt"视作1 2 MDATA= 150' 3 Print# 1,"* * * Print TEST* * * "'——输出字符串"* * * Print TEST* * * " 4 Print# 1'——输出换行符 5 Print# 1,"MDATA= ",MDATA'——输出字符串"MDATA= ",随后输出MDATA的值(150) 6 Print# 1'——输出换行符 7 Print# 1,"* * * * * * * * * * * * * * * * "'——输出字符串"* * * * * * * * * * * ** * * * * * * * * * * * * * * " 8 End '——□□□□□ 输出结果 * * * Print TEST* * * MDATA= 150 * * * * * * * * * * * * * * * *
注意
当指令中没有表达式时,输出换行符。
2.5.3 Input——从指定的文件中接收数据,接收的数值为ASCII码
(1)指令格式
Input □ #<文件号> □[<输入数据名>]…[<输入数据名>]
<输入数据名>——输入的数据被存放的位置。以变量表示。
(2)样例
1 Open"temp.txt"For Input As# 1'——将"temp.txt"文件视作# 1文件打开 2 Input# 1,CABC$ '——接收1#文件传送过来的数据(从开始到换行符为止),CABC$ = "接收到的数据" 10 Close# 1
2.5.4 On Com GoSub指令
(1)功能
如果从通信端口有插入指令输入,就跳转到指定的子程序。
(2)指令格式
On □ Com[(<文件号>)]□ GoSub □<跳转行标记>
(3)例句
1 Open"COM1:"As# 1' 2 On Com(1)GoSub * RECV' 3 Com(1)On'——允许插入(区间生效) 4 ''这中间如果插入条件= ON,就跳转到RECV标记的子程序 11' 12 Mov P1 13 Com(1)Stop'——从P1移动到P2点停止插入 14 Mov P2 15 Com(1)On'——允许插入 16 ''这中间如果插入条件= ON,就跳转到RECV标记的子程序 26' 27 Com(1)Off'——禁止插入 28 Close# 1 29 End 40 * RECV'——标签 41 Input# 1,M0001'——接收数据存放到M0001、P0001 42 Input# 1,P0001 50 Return 1
2.5.5 Com On/Com Off/Com Stop
①Com On允许插入(类似于中断区间指定)。
②Com Off禁止插入。
③Com Stop插入暂停(插入动作暂停,但继续接收数据,待Com On指令后,立即执行“插入程序”)。