如何按照系统手册的要求使用USS指令发送一个空白PKW 请求到驱动电机?

n

描述

作为系统手册 “SIMATIC STEP 7 Professional V11.0 SP2 (04/2012)” ( 文档编号: 57185407 ) 和 “SIMATIC STEP 7 Professional V12 (01/2013)” (文档编号: 68113685)的附加部分,本文中描述了一个示例程序,该示例程序用于检测PKW-通道是否能够读或写更多的驱动器数据。n

上述系统手册对 USS_RPM 和 USS_WPM 指令进行了说明:“完成”位表示有效数据已经从引用的驱动电机读取并传递到 CPU。它并不表明 USS 指令能够立即读另一个参数。n

在指定的驱动设备参数通道可用前,一个空白 PKW 请求命令必须被发送到驱动电机并且得到确认。立即对指定的驱动电机使用 USS_RPM 或 USS_WPM 指令会导致一个 0x818A 错误。n

空白的 PKW 由 USS 指令处理;除了空白的PKW之外你不需要做任何事。 USS_WPM 或者 USS_RPM 函数的完成位为真表明了数据已经成功的从引用驱动电机接收或发送到了引用驱动电机。当完成位为真后,USS 函数必须立即发送一个空白的 PKW 字符串到引用驱动器,驱动器会响应一个空白的 PKW 响应。这段传送期间,PKW通道被认为是忙碌状态,并且任何调用 USS_RPM 或 USS_WPM 函数会返回一个0x818A 错误表明通道忙碌。n

所以问题来了,“我怎样知道什么时候能够发送其他的 USS 指令呢?” 你可以在命令之间执行时间延迟,但延迟时间受使用波特率和驱动器的数量的影响,并且在大多数情况下不能提供理想的性能。下面你会发现解决这个问题的一个选择。n

说明

使用“通道忙标志”
可以使用类似于下面例子的网络来避免在通道忙时调用USS_WPM 和 USS_RPM 函数。

No. 步骤
1 USS_RPM块的输入参数“DRIVE”指定引用的驱动(在这个例子中驱动号 = 1)。
2 参数化入“REQ”为常量“FALSE”。由于输入参数“PARAM”和“INDEX”从来没有被阅读。现在要做的是检查引用驱动的状态和报告错误值 16 # 818A = 33162。
3 程序最后通过”ERROR”是否为1和比较”STATUS” 值是否为16#818A来确定输出结果“chael busy bit”。在后边的程序中“chael busy bit” 的结果可以作为最终用户的逻辑。如何使用”chael busy bit”的逻辑超出了本文的范围。

表 01

LAD 形式调用 USS_RPM 函数

如何按照系统手册的要求使用USS指令发送一个空白PKW 请求到驱动电机?
图 01

FDB 形式调用 USS_RPM 函数

如何按照系统手册的要求使用USS指令发送一个空白PKW 请求到驱动电机?
图 02

原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc328208.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2020年11月5日
下一篇 2021年4月12日

相关推荐

发表回复

登录后才能评论