配置和运行

通讯数据格式配置

通讯参数配置可以在XYZ-Studio-Max中进行操作,设置界面如下:

../../../_images/s7-settings-in-max.png

设置界面

可以在界面中设置PLC的地址,端口号,机架号和槽号。

同时可以设置小数点位数和DB块编号。系统默认用到DB块的1600个字节。

PLC参考程序

用户可以根据 交互时序 要求,并按照 api接口说明 的规范,自己编写PLC程序。

用户也可以参考提供的PLC示例程序来编写PLC程序。plc参考程序可以从以下路径获取:

../../../_images/plc_code.png
– 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版本,用户需要根据情况自行修改

示例程序说明:

  1. Global_xyzS7_DB.db :全局数据块,映射了xyz的通信数据

该数据块提前映射好了所有输入输出。导入到PLC以后数据块编号会自动更新,而Max默认的数据块编号是99,用户需要注意修改。

../../../_images/global_xyzs7_db.PNG
  1. xyzS7.scl :基于 Global_xyzS7_DB.db 实现了xyzS7通信的时序封装。导入该功能块会同时导入 Global_xyzS7_DB.db

    xyzS7功能块是对xyz提供的时序的进一步封装。用户只需要关注Req信号和对应的指令输入参数,以及监视Error信号、Done信号和对应的指令输出参数即可。

../../../_images/xyzS7.PNG

使用该功能块时,功能块输入端的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

  1. CartMove_Basic_Template.sclTrajMove_Sync_Template.scl :模板程序

2个模板程序,用户可以参考这2个程序了解如何使用 xyzS7.scl

需要注意的是,在PLC中导入 CartMove_Basic_Template.scl 或者 TrajMove_Sync_Template.scl,会同步导入 xyzS7.sclGlobal_xyzS7_DB.db

PLC设置和程序导入

以下仅列出一些和ModbusTcp有关的PLC设置:

启用“系统存储器字节”和“时钟存储器字节”

../../../_images/PLC_timming.png

系统和时钟存储器设置

设置访问级别为“完全访问权限”

../../../_images/PLC_access_level.png

访问级别设置

连接机制中勾选“允许来自远程对象的PUT/GET通讯访问”

../../../_images/PLC_connect_type.png

连接机制设置

机架号和槽号

../../../_images/rack_slot.png

rack和slot

PLC导入示例程序方法:

“外部源文件”下添加外部文件

../../../_images/S7_import.png

添加Max提供的PLC示例程序

右键导入的外部源文件,执行“从源生成块”。注意导入 xyzS7.scl 会同时导入 Global_xyzS7_DB.db, 而导入 CartMove_Basic_Template.scl 或者 TrajMove_Sync_Template.scl,会同步导入 xyzS7.sclGlobal_xyzS7_DB.db,请根据需要生成相应的块即可。

../../../_images/S7_compile_from_out.png

从源生成块

此时可以看到导入的程序块,注意Global_xyzS7_DB导入后默认DB块编号是1,需要和Max中的设置值一致,之后可以下载到PLC中。

../../../_images/S7_xyzS7.png

导入的程序块

启动方法

正常启动顺序: 启动PLC并运行S7程序 -> 启动“机械臂主控驱动”(即robot_server)

注意不允许先启动“机械臂主控驱动”,否则在启动PLC程序后会复位robot_server的一些标志位,导致时序混乱无法完成通讯。

因此如果有异常要重新开始(如:调试/重置/通讯故障/时序错误等)情况下,需要按照如下顺序重新开始:

  • 关闭 robot_server、停止PLC的CPU -> 目的是复位两边的标志位和变量等

    目前robot_server还无法监视到S7断开连接,所以也需要手动关闭 robot_server

  • 重新启动PLC的CPU

  • 重新启动 robot_server