配置和运行
通讯数据格式配置
通讯参数配置可以在XYZ-Studio-Max中进行操作,设置界面如下:
可以在界面中设置PLC的地址,端口号,机架号和槽号。
同时可以设置小数点位数和DB块编号。系统默认用到DB块的1600个字节。
PLC参考程序
用户可以根据 交互时序 要求,并按照 api接口说明 的规范,自己编写PLC程序。
用户也可以参考提供的PLC示例程序来编写PLC程序。plc参考程序可以从以下路径获取:
- – PLC示例程序
Global_xyzS7_DB.db 参考的映射好的DB数据块
xyzS7.scl 参考的xyzS7通信FB功能块
CartMove_Basic_Template.scl 坐标移动基础模板
TrajMove_Sync_Template.scl 轨迹移动同步模板
示例程序测试硬件:西门子PLC-1200
示例程序测试软件:TIA V17,但是以上提供的.db和.scl可以被导入到V16中
版本说明:示例程序不确保运行在其他型号的plc和TIA版本,用户需要根据情况自行修改
示例程序说明:
Global_xyzS7_DB.db
:全局数据块,映射了xyz的通信数据
xyzS7.scl
:基于Global_xyzS7_DB.db
实现了xyzS7通信的时序封装。导入该功能块会同时导入Global_xyzS7_DB.db
xyzS7功能块是对xyz提供的时序的进一步封装。用户只需要关注Req信号和对应的指令输入参数,以及监视Error信号、Done信号和对应的指令输出参数即可。
使用该功能块时,功能块输入端的Req为True时触发指令,Max完成工作以后功能块输出端的Done信号会更新为True。当Req为False时,Done信号才会复位。
Req信号不可以在Done信号为True之前提前复位,否则Error会输出True。读取输出数据之前要确保没有Error且Done为True才是正确的。
如果丢失心跳包信号,则输出端的Error更新为True,同时输出端的Connected也会为False。
输出端的Step信号可以用来监视当前处于时序图中的哪个步骤,可以用于调试。
输出端的Cmd_Exec_Time可以显示从当前指令的触发到接收返回值所消耗的时间。
需要注意的是,在PLC中导入
xyzS7.scl
,会同步导入Global_xyzS7_DB.db
。
CartMove_Basic_Template.scl
和TrajMove_Sync_Template.scl
:模板程序
2个模板程序,用户可以参考这2个程序了解如何使用
xyzS7.scl
。需要注意的是,在PLC中导入
CartMove_Basic_Template.scl
或者TrajMove_Sync_Template.scl
,会同步导入xyzS7.scl
和Global_xyzS7_DB.db
。
PLC设置和程序导入
以下仅列出一些和ModbusTcp有关的PLC设置:
启用“系统存储器字节”和“时钟存储器字节”
设置访问级别为“完全访问权限”
连接机制中勾选“允许来自远程对象的PUT/GET通讯访问”
机架号和槽号
PLC导入示例程序方法:
“外部源文件”下添加外部文件
右键导入的外部源文件,执行“从源生成块”。注意导入 xyzS7.scl
会同时导入 Global_xyzS7_DB.db
, 而导入 CartMove_Basic_Template.scl
或者 TrajMove_Sync_Template.scl
,会同步导入 xyzS7.scl
和 Global_xyzS7_DB.db
,请根据需要生成相应的块即可。
此时可以看到导入的程序块,注意Global_xyzS7_DB导入后默认DB块编号是1,需要和Max中的设置值一致,之后可以下载到PLC中。
启动方法
正常启动顺序: 启动PLC并运行S7程序 -> 启动“机械臂主控驱动”(即robot_server)
注意不允许先启动“机械臂主控驱动”,否则在启动PLC程序后会复位robot_server的一些标志位,导致时序混乱无法完成通讯。
因此如果有异常要重新开始(如:调试/重置/通讯故障/时序错误等)情况下,需要按照如下顺序重新开始:
关闭 robot_server、停止PLC的CPU -> 目的是复位两边的标志位和变量等
目前robot_server还无法监视到S7断开连接,所以也需要手动关闭 robot_server
重新启动PLC的CPU
重新启动 robot_server