USS 参数读写指令

USS 指令库中共有 6 种参数读写功能块,分别用于读写驱动装置中不同规格的参数。


图 1. USS 参数读写指令

它们是:

USS_RPM_W
读取无符号字参数
U16 格式
USS_RPM_D
读取无符号双字参数
U32 格式
USS_RPM_R
读取实数(浮点数)参数
Float 格式
USS_WPM_W
写入无符号字参数
U16 格式
USS_WPM_D
写入无符号双字参数
U32 格式
USS_WPM_R
写入实数(浮点数)参数
Float 格式

USS 参数读写指令采用与 USS_CTRL 功能块不同的数据传输方式。由于许多驱动装置把参数读写指令用到的 PKW 数据处理作为后台任务,参数读写的速度要比控制功能块慢一些。因此使用这些指令时需要更多的等待时间,并且在编程时要考虑到,进行相应的处理。

 

读参数指令

以下的程序段读取SINAMICS V20 实际频率(参数 r0021)。由于此参数是一个实数,因此选用实型参数读功能块。

参数读写指令必须与参数的类型配合。


图 2. 调用 USS_RPM_R 指令读取 SINAMICS V20 的实际频率

图中:

  1. EN: 要使能读写指令此输入端必须为 1
  2. XMT_REQ: 发送请求。必须使用一个沿检测触点以触发读操作,它前面的触发条件必须与 EN 端输入一致
  3. Drive: 要读写参数的驱动装置在 USS 网络上的地址
  4. Param: 参数号(仅数字)。此处也可以是变量
  5. Index: 参数下标。有些参数由多个带下标的参数组成一个参数组,下标用来指出具体的某个参数。对于没有下标的参数,可设置为 0
  6. DB_Ptr: 读写指令需要一个 16 字节的数据缓冲区,用间接寻址形式给出一个起始地址。此数据缓冲区与“库存储区”不同,是每个指令(功能块)各自独立需要的。
    此数据缓冲区也不能与其他数据区重叠,各指令之间的数据缓冲区也不能冲突
  7. Done: 读写功能完成标志位,读写完成后置 1
  8. Error: 出错代码。0 = 无错误
  9. Value: 读出的数据值。该数据值在 “Done”位为1时有效。

EN 和 XMT_REQ 的触发条件必须同时有效,EN 必须持续到读写功能完成(Done 为 1),否则会出错。

 

写参数指令

写参数指令的用法与读参数指令类似。与读参数指令的区别是参数是功能块的输入。

读写多个参数

在任一时刻 USS 主站内只能有一个参数读写功能块有效,否则会出错。因此如果需要读写 多个参数(来自一个或多个驱动装置),必须在编程时进行读写指令之间的轮替处理。

轮询处理方式可以参考下面给出一个简单的例子,方法不是唯一的。

USS 控制及读参数测试例程