PLC与发那科机器人通讯组信号的无法接受负数,并且高低字节取反;
解决办法如下:
在发送数据时双方约定一个基数,通讯时双方+上这个值,或减去这个值即可; 如下图,当前约定收发数据范围为-20到20之间,并且机器人端解析最终结果为-20到20之间的值;
如上图所知,实际值为-20到20;转换值系数为100,若发送值为0到20,则加100,若发送值为0到-20,则100+0到-20;
公式如下:
PLC_TO_ROBOR:输出值 = 系数 + 输出目标值
ROBOT输入:输入解析值 = 输入值 - 系数
PLC端变量:
GO1:输出值(数据类型word)
M_值:输出目标值(数据类型real)
机器人端变量:
GI1:输入值(数据类型word)
R[10]:输入解析值(数值寄存器)
例1:假设当前需要发送给机器人15的偏移量
PLC端数据:
输出值 = 系数 + 输出目标值
系数 = 100
M_值 = 15
GO1 = 100 + M_值
GO1 = 100 + 15
GO1 = 115
机器人端数据:
输入解析值 = 输入值 - 系数
系数 = 100
GI1 = 115
R[10] = GI1 – 100
R[10] = 115 – 100
R[10] =15
例2:假设当前需要发送给机器人-15的偏移量
PLC端数据:
输出值 = 系数 + 输出目标值
系数 = 100
M_值 = -15
GO1 = 100 + M_值
GO1 = 100 + (-15)
GO1 = 85
机器人端数据:
输入解析值 = 输入值 - 系数
系数 = 100
GI1 = 85
R[10] = GI1 – 100
R[10] = 85 – 100
R[10] = -15
综上所述编写PLC程序
机器人程序