Appearance
1 TCP外部通讯
与外部设备进行通讯时,可以选择TCP通讯。
2 参数设置
设置TCP通讯需要进入"设置-TCP通讯设置"界面。

2.1 功能介绍
工艺号: 支持9个工艺号。
连接开关: 方式为客户端时白色代表断开,绿色代表连接;方式为服务器时白色代表关闭,绿色代表打开(连接上该界面会提示通讯连接成功)。
方式: 将控制器作为服务器或客户端(控制器为客户端或服务器时都可使用不同的工艺号与多台外部设备进行通讯和数据收发;注:控制器为客户端多个工艺号与多台服务器设备连接时工艺号之间的IP和端口不能一致,控制器为服务器多个工艺号与多台客户端设备连接时端口不能一致)。
IP: 当控制器作为服务器(方式选择为服务器),此处为控制器IP无需修改。当控制器作为客户端,此处需设置为外部通讯设备的IP。
端口: 方式为服务器时,为本机监听端口,供客户端连接;方式为客户端时,为连接服务器端口。
帧头: 数据通讯时,控制器接收外部设备消息时的帧头,可修改。
分隔符: 数据通讯时,控制器接收外部设备消息时的分隔符,可修改。
结束符: 数据通讯时,控制器接收外部设备消息时的结束符,可修改。
进制: 将要接收的十进制或十六进制数据选择对应的进制再以10进制解析后输出。
2.2 注意事项
TCP通讯进行连接时,首先将控制器IP与外部设备IP设置为同一网段,如192.168.1.xxx,若设置控制器为客户端,则外部设备为服务端,再将网络设置中的IP和端口与外部设备网络调试软件中的IP和端口设置一致,连接开关打开,提示连接成功。
3 网络通讯类指令
3.1 SENDMSG-发送数据
该指令用于向已连接的外部设备发送数据,通过选择对应的工艺号可以发送字符串和变量。
字符串与变量可以混合发送。向外部设备发送信息不使用在"设置-TCP通讯设置"界面设置的帧头、分隔符、结束符、进制。
如果要发送变量,则在变量前加入$。

参数说明:
| 参数 | 值 | 注释 |
|---|---|---|
| ID | 工艺号(1-9) | 1 |
| 发送字符 | 若要发送变量,则在变量前加入$ | 例如,需要发送D001的值,则填入SENDMSG ID =1#$D001# |
示例:
前提: GD001=123,I001=10
需要向网络设置工艺号为3的上位机发送数据"The value of GD001 is 123,and the value of I001 is 10"
插入指令SENDMSG为:
- ID=1
- 发送字符: The value of GD001 is $GD001,and the value of I001 is $I001
3.2 PARSEMSG-解析数据
该指令用来解析外部设备传来的一组数据。
该指令会将外部设备传来的数据分别存于多个全局变量中,本指令要设置的为第一个变量。
解析后不清除缓存区: 外部设备发送的数据会暂时存在控制器的缓存区;
- a、不清除缓存区在第一次解析后下一组数据还没有发送之前数据仍存在缓存区;
- b、清除缓存区在第一次解析完成后会对缓存区的数据进行清除。

参数说明:
| 参数 | 值 | 注释 |
|---|---|---|
| ID | 工艺号(1-9) | 1 |
| 数据存放的首个变量 | 1001 | 更多查询的数据依次存放的首位置 |
| 解析后清除缓存区 | 否 | 0或1 |
| 数据存放数 | 记录提取数据的数量 | - |
示例: PARSEMSG ID=1 GI001 CLEARCACHE=01001
当有TCP接收到多位数值时,会将数值分别存入多个变量中,所使用的变量分别为第一位变量、第一位变量往下顺延。
即,若发来3位数值,A、B、C,设置的第一位变量名为GI006,则将A存入GI006、B存入GI007、C存入GI008。
完整示例:
帧头: @ 分隔符: , 结束符: !
PARSEMSG指令第一位变量类型GDOUBLE,第一位变量名GD003.
外部设备发送数据: @,12,6,47,102,77.88,!
则EXPLAIN指令将这5个数值分别存于GD003、GD004、GD005、GD006、GD007中。
GD003=12 GD004=6 GD005=47 GD006=102 GD007=77.88
解析后清除缓存区: 是或否
3.3 READCOMM-读取数据
读取以太网或Modbus发送的点位存到位置变量中、个数存到数值变量中。
注: 使用方法同《外部点功能》, 该指令目前仅支持Modbus。

参数说明:
| 参数 | 值 | 注释 |
|---|---|---|
| 工艺号 | 1 | 1-9 |
| 通讯方式 | ETHERNET | 以太网或Modbus |
| 点位存放首个变量 | GP0001 | 已存点位:0 |
| 点位存放个数 | 1001 | 1001,GI001 |
示例: READCOMM ID =1 ETHERNET TO P0001 1001
- 工艺号: 要打开的网络通讯工艺号。
- 通讯方式: 使用以太网(Ethernet)通讯或者Modbus通讯。
- 点位存放首个变量: 可选全局位置变量/局部位置变量。
- 点位存放个数: 存接收到点位的数量。
3.4 OPENMSG-打开数据
连接通讯:打开对应工艺号的网络通讯。运行OPENMSG指令后即打开通讯。

参数说明:
| 参数 | 值 | 注释 |
|---|---|---|
| ID | 1 | 工艺号(1-9) |
示例: OPENMSG ID=1
- 工艺号: 要连接网络通讯的工艺号。
3.5 CLOSEMSG-关闭数据
断开通讯:关闭对应工艺号的网络通讯。运行CLOSEMSG指令后即关闭通讯。

参数说明:
| 参数 | 值 | 注释 |
|---|---|---|
| ID | 1 | 工艺号(1-9) |
示例: CLOSEMSG ID=1
- 工艺号: 要断开网络通讯的工艺号。
3.6 PRINT-输出信息
屏幕输出指令,以三种形式在示教器上显示内容。可输出自定义字符或变量的数据。

类型: 现分成三个类型:消息、警告、错误。
输出字符: 输出字符。可输入任意字符(支持转义符),同时可以输出变量,如GD001变量,GD001=10;在输出信息的"消息、警告、错误"指令里分别输入: $GD001。
此时运行或单步这条指令时,示教盒右下角弹出的分别是:
- 白色消息内容为: 10;
- 黄色警告内容为: 10;
- 红色错误内容为: 10。
3.7 MSG_CONN_ST-获取信息连接状态

参数说明:
| 参数 | 值 | 注释 |
|---|---|---|
| 工艺号 | 1 | 网络设置的工艺号 |
| 状态存入变量名 | GB001 | 更多变量名 |
示例: MSG_CONN_ST1 B001
- 工艺号: 判断网络通讯连接状态的工艺号。
- 状态存入变量名: 将通讯状态存入到局部的BOOL变量或者全局的GBOOL变量。
读取当前工艺号网络通讯状态到对应的全局布尔或局部布尔变量中。通讯正常则存入的值为1,通讯失败则存入的值为0。
4 数据上传
4.1 基本设置
数据上传功能可以定时自动采集并上传当前机器人运行状态、参数,并将数据整合成csv、txt文件上传到指定服务器。
在设置-数据上传中点击【修改】按钮以设置相关连接ftp服务器所需要的参数。

参数说明:
| 参数 | 说明 |
|---|---|
| 数据传输开关 | 打开后则开始连接ftp服务器并上传数据。在所有参数填写好之后再打开该开关,本开关打开后,开机将自动开始采集并上传数据。 |
| 上传方式 | 当前仅支持ftp协议。所以在使用本功能之前请先拥有一个ftp服务器。 |
| 文件格式 | 当前支持csv与txt格式。其文件内容相同,文件格式不同。csv格式更方便进行数据的统计。 |
| 服务器IP | ftp服务器的ip地址,请保证本控制器与ftp服务器在同一个网络内,保证其网关相同(控制器网关在设置-系统设置-IP设置内进行查看和修改)。 |
| 端口 | ftp服务器的ftp协议所使用的端口。一般的ftp协议使用的默认端口为21。 |
| 用户名 | 登录ftp服务器所使用的用户名。需先在ftp服务器处创建好一个用户。 |
| 密码 | 登录ftp服务器所使用的密码。 |
| 路径 | 文件上传到ftp服务器的路径。本路径是相对于ftp根目录的路径。 |
| 数据采集周期 | 根据设定的时间,每隔一定时间,控制器采集一次当前数据并存入要发送的文件中。 |
| 数据上传周期 | 根据设定的时间,每隔一定时间,控制器将已采集好数据的文件发送到ftp服务器指定的目录下。 |
| 是否发送说明文件 | 说明文件在开机或打开【数据传输开关】后第一次发送数据文件前发送。内容可自定义,一般用来说明当前机器人的序号等信息。若本开关关闭,则不发送说明文件。 |
4.2 数据格式
配置好ftp的连接相关参数后则需要配置发送的数据文件中的数据格式。在设定数据格式时使用特殊字符串代表所需要发送的参数。例如要发送当前的日期,格式如下"2019-03-07",则需在数据格式中填写如下: "$Y$%-$m$%-$d$%"(不包括引号)。

生成的文件若要csv格式,每一项之间要用英文逗号,分割。
特殊字符串代表参数:
| 参数类型 | 特殊字符串 |
|---|---|
| IP地址 | $IP% |
| MAC地址 | $MAC% |
| 日期-年 | $Y% |
| 日期-月 | $m% |
| 日期-日 | $d% |
| 时间-时 | $H% |
| 时间-分 | $M% |
| 时间-秒 | $S% |
| 状态代码 | $StatusCode% |
| 错误代码 | $ErrorCode% |
| J1-J6转速 | $RPM_J1%,$RPM_J2%.. |
| J1-J6扭矩 | $Torsion_J1%,$Torsion_J2%... |
| J1-J6负载 | $Load_J1%,$Load_J2%... |
| 全局整型变量 | $GI001%,$GI002%... |
| 全局浮点变量 | $GD001%,$GD002%... |
| 全局布尔变量 | $GB001%,$GB002%... |
生成csv文件示例:
希望得到的结果如下:
说明文档文件名: Robot-R1_年-月-日_时:分:秒_INFO
说明文档内容: Robot-R1,年-月-日,时:分:秒,本机IP,本机MAC,技术部,加工零件,1轴电机转速,2轴电机转速,3轴电机转速,4轴电机转速,5轴电机转速,6轴电机转速,1轴电机扭矩,2轴电机扭矩,3轴电机扭矩,4轴电机扭矩,5轴电机扭矩,6轴电机扭矩,1轴电机负载,2轴电机负载,3轴电机负载,4轴电机负载,5轴电机负载,6轴电机负载,当前控制器状态,当前错误代码。
数据文档文件名: Robot-R1_年-月-日_时:分:秒_DATA
数据内容: Robot-R1,年-月-日,时:分:秒,本机IP,本机MAC,1轴电机转速,2轴电机转速,3轴电机转速,4轴电机转速,5轴电机转速,6轴电机转速,1轴电机扭矩,2轴电机扭矩,3轴电机扭矩,4轴电机扭矩,5轴电机扭矩,6轴电机扭矩,1轴电机负载,2轴电机负载,3轴电机负载,4轴电机负载,5轴电机负载,6轴电机负载,当前控制器状态,当前错误代码。
所编写的数据格式如下:
说明文档文件名: Robot-R1_ $Y%-$m%-$d%_ $H%:$M%:$S%_INFO
说明内容: Robot-R1,$Y%-$m%-$d%,$H%:$M%:$S%,$IP%,$MAC%,技术部,加工零件,$RPM_J1%,$RPM_J2%,$RPM_J3%,$RPM_J4%,$RPM_J5%,$RPM_J6%,$Torsion_J1%,$Torsion_J2%,$Torsion_J3%,$Torsion_J4%,$Torsion_J5%,$Torsion_J6%,$Load_J1%,$Load_J2%,$Load_J3%,$Load_J4%,$Load_J5%,$Load_J6%,$StatusCode%,$ErrorCode%
数据文档文件名: Robot-R1_ $Y%-$m%-$d%_ $H%:$M%:$S%_DATA
数据内容: Robot-R1,$Y%-$m%-$d%,$H%:$M%:$S%,$IP%,$MAC%,$RPM_J1%,$RPM_J2%,$RPM_J3%,$RPM_J4%,$RPM_J5%,$RPM_J6%,$Torsion_J1%,$Torsion_J2%,$Torsion_J3%,$Torsion_J4%,$Torsion_J5%,$Torsion_J6%,$Load_J1%,$Load_J2%,$Load_J3%,$Load_J4%,$Load_J5%,$Load_J6%,$StatusCode%,$ErrorCode%
*涉及轴的参数需要手动输入哪个轴,如1轴转速: $RPM_J%需要在J后面写1。
5 外部传输点
5.1 参数设置
外部通讯可使用modbus,设置参数需要进入"设置-modbus设置-modbus参数"界面。(也可查看modbus相关手册)


开关的检测与状态显示的参数:
- 连接: Modbus的开关,打开后检测Modbus信号。
- 心跳检测: 打开后用于检测Modbus与控制器之间的收发频率,断开modbus连接后心跳检测显示数据收发关闭。
- Modbus: 显示Modbus与控制器之间的连接状态。
- 通讯断开:
- 不停机: 当Modbus从站断开、通讯断开时不会停止运行或下电。
- 停机: 当Modbus从站断开、通讯断开时会停止运行或下电。
- 协议: 选择目前设置的通讯协议,可选择TCP/RTU。
- 扫描周期: 执行一次扫描操作所需要的时间。
5.2 设置说明
在这个界面可以设置Modbus是否进行连接、Modbus连接所使用的协议、本控制器为Modbus主站/从站以及当连接时的各个参数。
本机为主站:
- TCP(端口): 从站的连接端口;
- RTU(端口): 从站Modbus连接的端口;
- RTU(ID): 从站的ID;
- RTU(波特率): Modbus的波特率,需要设置。
本机为从站:
- TCP(端口): 本机用来连接的端口,需要设置;
- RTU(ID): 本机用来连接的ID,需要设置;
- RTU(端口): 本机用来连接的端口,需要设置;
- RTU(波特率): 本机用来连接的波特率,需要设置。
6 通讯方式
6.1 点位发送说明
因地址码限制,对于过多的点位需要进行分次发送,每次最多发送30个点。
只要控制器与PLC连接上便可发送点位,控制器会自动存储。
| 用途 | 地址码 | 过程 |
|---|---|---|
| 全部点位发送标志 | 1001 | PLC需发送点位时将其置1,最后一次发送点位将其置2,控制器接收完毕将其置0 |
| 发送一次的发送标志 | 1002 | PLC需发送点位时将其置1,控制器接收完将其置0,PLC再次将其置1来进行下一次的发送过程 |
| 发送一次的点位数量 | 1003 | PLC一次发送时的点位数量,最多30个 |
| 点位存放的数据 | 根据个数 | 下面详解 |
| 每帧数据的帧编号 | 1004 | 每一次发点都要更改编号数字,不可与上次相同 |
| 清空控制器点位队列标志 | 1005 | 若要抛弃已发送给控制器的点位队列,PLC将其置1,控制器清除之后将其置0 |
6.2 点位存放数据说明
一个点位数据包含1个坐标系和6个轴的值(若为四轴机器人,则包含1个坐标系和四个轴的值)。
| 第i个点位 | 地址码 | 注释 |
|---|---|---|
| 坐标系 | 1010+20*(i-1) | 1≤i≤32 |
| 是否使用 | 1011+20*(i-1) | 1≤i≤32;发0使用,发1不使用 |
| 第j个轴的值 | 1010+2+20*(i-1)+2*(j-1) | 1≤i≤32,1≤j≤9,轴的值使用float类型,所以占用2个地址 |
示例: 需要发送88个点位。由于每次只能发32个,所以需要分为3次发送,发送的个数分别为32、32、24。
过程如下:
- PLC设置1003为32,设置点位存放数据所用各个地址码的值,设置1001为1,设置1002为1;
- 控制器检测到1002为1,1001为1,则根据1003的值取出点位存放地址码的数据,然后设置1002为0;
- PLC检测到1002位0,设置1003为32,设置点位存放地址码的数据,然后设置1002为1;
- 控制器检测到1002的值为1,1001为1,根据1003的值取出点位存放地址码的数据,然后设置1002为0;
- PLC检测到1002的值为0,设置1003为24,设置点位存放地址码的数据,设置1001为2,设置1002为1;
- 控制器判断到1002为1,1001为2,根据1003的值取出点位存放地址码的数据,然后设置1002的值为0,再将1001设置为0。
6.3 指令
MOVCOMM-外部点: 该指令用于将控制器中存放的点位按照设置的插补方式进行运动。

参数说明:
| 参数名 | 参数 | 注释 |
|---|---|---|
| 插补方式 | 关节/VJ | 10% (速度范围1-100) |
| 速度范围 | PL | 0 (平滑过渡0-5) |
| 加速度 | ACC | 20 (运动加速度) |
| 减速度 | DEC | 20 (运动减速度) |
| 提前执行 | TIME | 0 (自然数ms) |
示例: MOVCOMM MOVL VJ= 10% PL= 0 ACC= 10 DEC= 10
参数详解:
插补方式:
- a. 关节;
- b. 直线;
- c. 曲线。
运动时插补方式,所有点位均用该插补方式运动。
速度: 插补方式为关节,1-100。其它插补方式,2-1000。运动时的最大速度。
平滑(PL): 0-5,插补方式为曲线时可填0,平滑过渡。
加速度: 运行时的最大加速度。
减速度: 运行时的最大减速度。
时间: 提前执行时间可提前执行下一条可提前执行指令。
参数来源: 可自定义或绑定变量。
常见问题解答
Q1: 如何建立TCP连接?
A: 确保控制器和外部设备在同一网段(如192.168.1.xxx),配置好IP和端口,在"设置-TCP通讯设置"界面打开连接开关即可。
Q2: SENDMSG指令发送变量时有什么格式要求?
A: 在变量前加$符号,例如发送变量D001的值,写作$D001。字符串和变量可以混合发送。
Q3: PARSEMSG指令如何解析接收到的数据?
A: 需要设置第一个变量,数据会依次存入连续的变量地址中。可设置是否在解析后清除缓存区。
Q4: 如何配置数据上传功能?
A: 在"设置-数据上传"中配置FTP服务器参数(IP、端口、用户名、密码、路径),设置数据采集和上传周期,并配置数据格式字符串。
Q5: 外部点位传输时如何处理大量点位?
A: 每次最多发送30个点,需要分批发送。使用地址码1001-1005控制发送过程,每次发送后等待控制器处理完成再发送下一批。
Q6: Modbus通讯有哪两种模式?
A: 支持TCP和RTU两种协议。TCP基于以太网,RTU基于串口通讯,需要设置波特率等参数。
Q7: MSG_CONN_ST指令返回什么值?
A: 通讯正常返回1,通讯失败返回0,结果存入指定的BOOL变量中。
Q8: 数据上传的文件格式支持哪些?
A: 支持CSV和TXT两种格式,CSV格式更方便数据统计分析。