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 数据处理作为后台任务,参数读写的速度要比控制功能块慢一些。因此使用这些指令时需要更多的等待时间,并且在编程时要考虑到,进行相应的处理。
读参数指令
以下的程序段读取实际的电动机电流值(参数 r0068)。由于此参数是一个实数,因此选用实型参数读功能块。
参数读写指令必须与参数的类型配合。
图 2. 调用 USS_RPM_R 指令读取 MM 440 的输出电流
图中:
a.EN: 要使能读写指令此输入端必须为 1
b.XMT_REQ: 发送请求。必须使用一个沿检测触点以触发读操作,它前面的触发条件必须与 EN 端输入一致
c.Drive: 要读写参数的驱动装置在 USS 网络上的地址
d.Param: 参数号(仅数字)。此处也可以是变量
e.Index: 参数下标。有些参数由多个带下标的参数组成一个参数组,下标用来指出具体的某个参数。对于没有下标的参数,可设置为 0
f.DB_Ptr: 读写指令需要一个 16 字节的数据缓冲区,用间接寻址形式给出一个起始地址。此数据缓冲区与“库存储区”不同,是每个指令(功能块)各自独立需要的。
此数据缓冲区也不能与其他数据区重叠,各指令之间的数据缓冲区也不能冲突
此数据缓冲区也不能与其他数据区重叠,各指令之间的数据缓冲区也不能冲突
g.Done: 读写功能完成标志位,读写完成后置 1
h.Error: 出错代码。0 = 无错误
i.Value: 读出的数据值。要指定一个单独的数据存储单元
EN 和 XMT_REQ 的触发条件必须同时有效,EN 必须持续到读写功能完成(Done 为 1),否则会出错。
写参数指令
写参数指令的用法与读参数指令类似。与读参数指令的区别是参数是功能块的输入。
读写多个参数
在任一时刻 USS 主站内只能有一个参数读写功能块有效,否则会出错。因此如果需要读写 多个参数(来自一个或多个驱动装置),必须在编程时进行读写指令之间的轮替处理。
USS 通信出错代码及常见原因
MM 440 参数设置
USS 错误代码及常问问题
表 1. USS 库指令错误代码
错误代码 | 错误描述 |
0 | 无错误 |
1 | 驱动装置无响应 |
2 | 来自驱动的响应中检测到校验和错误 |
3 | 来自驱动的响应中检测到奇偶校验错误 |
4 | 用户程序干扰引起错误 |
5 | 尝试执行非法命令 |
6 | 提供了无效的驱动装置地址 |
7 | 通信口未定义为 USS 协议 |
8 | 通信口忙于处理其他指令 |
9 | 驱动装置速度设定输入值超限 |
10 | 驱动装置返回的信息长度不正确 |
11 | 驱动装置返回报文的第一个字符不正确(不是 02 h) |
12 | 驱动装置返回的长度信息不被 USS 指令支持 |
13 | 响应的驱动装置不正确 |
14 | 提供的 DB_Ptr 地址不正确 |
15 | 提供的参数号不正确 |
16 | 选择了错误的协议 |
17 | USS 已激活,不能改变 |
18 | 指定了非法的波特率 |
19 | 无通信活动:驱动装置未激活 |
20 | 驱动装置返回的参数值不正确或包括错误的代码 |
21 | 请求一个字长的数据时返回了一个双字数据 |
22 | 请求一个双字长的数据时返回了一个字数据 |
调试中的常见错误及原因
表 2. 常见错误
错误代码 | 可导致此错误的原因(未全列出) |
1 | 通信线断线或者类似问题,驱动装置未供电 |
11 | 未正确接收到起始字符 02 h,硬件错误,RS 485 线对接反,或者通信口损坏 |
12 | 试图读取驱动装置中不存在的参数,或者参数类型不对 |
19 | 主站中的数据存储区重叠也能导致此错误 |
常问问题
看 USS 通信主站轮询的时间表,访问一个从站只需要几十毫秒,为何发出运行指令后感觉经过了数百毫秒电机才转动?这是否正常?
USS 通信控制是一种串行通信控制,通信轮询时间不能完全体现全系统中的时间延迟。
从用户发出运行控制信号,到电动机发生人眼可见的转动,中间经过了很多环节。控制信号进入 PLC 数字量输入端,经过主站中的程序运行,通信循环周期,以及从站中的程序处理,特别是驱动装置启动运行还需要很多准备环节,如电容预充电、建立磁场,建立转矩等。等到电机的转动可见,要经过一段时间。这是正常的现象。
采用高性能的控制器和网络系统(如 PROFIBUS-DP 等)可以大大减少串行通信的延时。
成熟的项目程序中包含 USS 通信库指令,为何修改后下载到新 CPU 中工作不正常?parameter数据类型
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论