001:准备工作
备齐以下设备:
- USB串口转RS485通讯模块 UT-8890
- 大寰电爪 RGI-100-22
- 24V电源
- 串口调试工具
002:配置PC端的通讯
将PC串口按照上述设置修正。
003:编写基本串口码
生成的数据需要带上ModbusRTU的CRC校验和,不然数据无法和电爪匹配,导致数据发送无效。
004:测试大寰电爪官方测试软件
005:在PLC中修改通讯参数
本文以台达AS228T为例子。
006:编写给电爪通讯用的数据结构
(*******************************************************************************
** Example1:
**
** TYPE DUT_StructA :
** STRUCT
** Element1 : BOOL;
** Element2 : REAL;
**
** (Array notation: ARRAY [lowerbound_index..upperbound_index] OF DataType)
** (Hint: the max dimension of ARRAY is 3)
** Element3 : ARRAY [0..1,0..3,0..5] OF INT;
** END_STRUCT
** END_TYPE
**
** Example2:
**
** TYPE DUT_StructB :
** STRUCT
** Element1 : DUT_EnumA; (Hint: using Enum in Struct declaration)
** Element2 : ARRAY [0..7] OF DUT_StructA;
** END_STRUCT
** END_TYPE
*******************************************************************************)
TYPE DUT_Ele :
STRUCT
//设备ID
ID:WORD;
//写入阶段
Init:ARRAY [0..1] OF WORD;
SetTorque:ARRAY [0..1] OF WORD;
SetPos:ARRAY [0..2] OF WORD;
SetPosSpeed:ARRAY [0..1] OF WORD;
SetAngleSpeed:ARRAY [0..1] OF WORD;
SetAngleTorque:ARRAY [0..1] OF WORD;
SetAngle:ARRAY [0..2] OF WORD;
//读取阶段
InitState:ARRAY [0..1] OF WORD;
ClampState:ARRAY [0..1] OF WORD;
CurAngle:ARRAY [0..2] OF WORD;
ErrState:ARRAY [0..1] OF WORD;
AngleState:ARRAY [0..1] OF WORD;
//功能键
EleInit:BOOL;
EleInitDone:BOOL;
EleSetLoose:BOOL;
EleSetClamp:BOOL;
EleSetAngle1:BOOL;
EleSetAngle2:BOOL;
END_STRUCT
END_TYPE
//InitState[1]=00;未初始化
//InitState[1]=01;初始化成功
//ClampState[1]=00;夹爪处于运动状态
//ClampState[1]=01;夹爪停止运动,且未检测到夹到物体
//ClampState[1]=02;夹爪停止运动,且检测到夹到物体
//ClampState[1]=03;夹爪检测到夹住物体后,发现物体掉落
//ErrState[1]=00;无故障
//ErrState[1]=04;过热
//ErrState[1]=08;过载
//ErrState[1]=11;过速
//AngleState[1]=00;运动中
//AngleState[1]=01;到达位置
//AngleState[1]=02;堵转
007:初始话结构体内数据
Ele1.ID:=2;
//写入
Ele1.Init[0]:=16#0100;Ele1.Init[1]:=16#00A5;
Ele1.SetTorque[0]:=16#0101;Ele1.SetTorque[1]:=40;//设置扭矩,20-100,默认40%
Ele1.SetPos[0]:=16#0103;Ele1.SetPos[1]:=1000;Ele1.SetPos[2]:=0;//设置位置,0-1000,
Ele1.SetPosSpeed[0]:=16#0104;Ele1.SetPosSpeed[1]:=50;//设置速度,1-100,默认50%
Ele1.SetAngleSpeed[0]:=16#0107;Ele1.SetAngleSpeed[1]:=50;//设置速度,1-100,默认50%
Ele1.SetAngleTorque[0]:=16#0108;Ele1.SetAngleTorque[1]:=40;//设置扭矩,20-100,默认40%
Ele1.SetAngle[0]:=16#0109;Ele1.SetAngle[1]:=90;Ele1.SetAngle[2]:=-90;//设置角度,-32000~~32000
//读取
Ele1.InitState[0]:=16#0200;
Ele1.ClampState[0]:=16#0201;
Ele1.CurAngle[0]:=16#0208;
Ele1.ErrState[0]:=16#0205;
Ele1.AngleState[0]:=16#020B;
008:编写通讯指令,开启RS485轮询
RS485轮询机制请参考RS485的讲解