工业机器人应用案例集锦
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

2.6 通信指令详解

(1)指令格式

①Open—开启通信口。

②Close—关闭通信口。

③Print#—以ASCII码输出数据,结束码CODE为CR。

④Input#—接收ASCII码数据文件,结束码CODE为CR。

⑤On Com GoSub—根据外部通信口输入数据,调用子程序。

⑥Com On—允许根据外部通信口输入数据进行“插入处理”。

⑦Com Off—不允许根据外部通信口输入数据进行“插入处理”。

⑧Com Stop—停止根据外部通信口输入数据进行“插入处理”。

(2)指令例句

    1  Open"COM1□"As#1′——开启通信口COM1并将从通信口COM1传入的文件作为1#文件。
    2  Close#1′——关闭1#文件。
    3  Close′——关闭全部文件。
    4  Print#1□"TEST"′——输出字符串“TEST”到1#文件。
    5  Print#2□"M1="□M′——输出字符串“M1=”到2#文件。例:如果M1=1则输出"M1=1"+CR。
    6  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。
    7  Print#1,M5,P5′——输出变量M5和P5点数据到1#文件。例:如果M5=8,P5为X=123.7、Y=238.9、Z=33.1、A=19.3、B=0、C=0、FL1=1、FL2=0,则输出数据为:"8,(123.7,238.9,33.1,19.3,0,0)(1,0)"+CR。
    8  Input#1,M3′——输入接收指令。指定输入的数据=M3。例:如果输入数据="8"+CR则 M3=8。
    9  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)。
    10  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)。
    11  On Com(2)GoSubRECV′——根据从外部通信口 COM2输入的指令调用子程序RECV。
    12  Com(1)On′——允许通信口COM1工作。
    13  Com(2)Off′——关闭COM2通信口。
    14  Com(1)Stop′——停止COM1通信口的工作(保留其状态)。

以下各节对通信指令进行详细解释。

2.6.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′——前进到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码格式接收“101.00,202.00,303.00”外部数据。
    5  P_01.X=M1′——对P_01.点的X赋值,P_01.X=101。
    6  P_01.Y=M2′——对P_01.点的Y赋值,P_01.Y=202。
    7  P_01.C=Rad(M3)′——对P_01.点的C赋值,P_01.C=303。
    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#文件。
    3  Close#1′——关闭1#文件。

通信口的通信方式可以用参数设置,参见图2-14。

图2-14 用参数设置通信口的通信方式

本参数设置了通信口COM1~COM8的通信方式。例如:COM1通信口的通信方式为RS232。

2.6.2 Print—输出字符串指令

(1)指令格式

    Print□#<文件号>□[<式1>]…[<式2>]

(2)术语解释

①<文件号>——OPEN指令指定的“文件号”。

②<式>——数值表达式、位置表达式、字符串表达式。

(3)指令例句

输出信息到文件“temp.txt”。

    1  Open"temp.txt"For APPEND As#1′——将文件“temp.txt”视作1#文件。
    2  MDATA=150′——赋值。
    3  Print#1,"*** Print TEST***"′——向1#文件输出字符串“***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.6.3 Input—从指定的文件中接收数据,接收的数值为ASCII码

(1)指令格式

    Input□#<文件号>□[<输入数据名>]…[<输入数据名>]

(2)术语解释

<输入数据名>——输入的数据被存放的位置,以变量表示。

(3)指令样例

    1  Open"temp.txt"For Input As #1′——将“temp.txt”文件视作1#文件打开。
    2  Input #1,CABC$′——接收1#文件传送过来的数据(从开始到换行符为止),CABC$=“接收到的数据”。
    10  Close #1′——关闭1#文件。

2.6.4 On Com GoSub指令

(1)功能

如果从通信端口有插入指令输入,就跳转到指定的子程序。

(2)指令格式

    On□Com[(<文件号>)]□GoSub□<跳转行标记>

(3)例句

    1  Open"COM1:"As #1′——打开通信口“COM1”,并将从“COM1:”传入的文件作为1#文件。
    2  On Com(1)GoSub*RECV′——如果从通信口有插入指令输入,就跳转到指定的子程序*RECV。
    3  Com(1)On′——允许插入(程序区间起点)。这中间如果插入条件=ON,就跳转到RECV标记的子程序。
    12  Mov P1′——前进到P1点。
    13  Com(1)Stop′——停止插入(程序区间终点)。
    14  Mov P2′——前进到P2点。
    15  Com(1)On′——允许插入(程序区间终点)。
    16  ′这中间如果插入条件=ON,就跳转到 RECV标记的子程序。
    27  Com(1)Off′——禁止插入。
    28  Close#1′——关闭1#程序。
    29  End′——主程序结束。
    40  *RECV′——子程序标签。
    41  Input #1,M0001′——接收数据存放到M0001。
    42  Input #1,P0001′——接收数据存放到P0001。
    50  Return1′——子程序结束。

2.6.5 Com On/Com Off/Com Stop

①Com On—允许插入(类似于中断区间指定)。

②Com Off—禁止插入。

③Com Stop—插入暂停(插入动作暂停,但继续接收数据,待Com On指令后,立即执行“插入程序”)。