四条 USS 指令使用两个 FB 和两个 FC 来支持 USS 协议。 一个 USS 网络使用一个 USS_Port_Scan 背景数据块 (DB)。 USS_Port_Scan 背景数据块包含供该 USS 网络中所有驱动器使用的临时存储区和缓冲区。 各 USS 指令共享此数据块中的信息。
连接到一个 RS485 端口的所有驱动器(多 16 个)是同一 USS 网络的一部分。 连接到另一 RS485 端口的所有驱动器是另一 USS 网络的一部分。 各 USS 网络通过单独的数据块进行管理。 与各 USS 网络相关的所有指令必须共享该数据块。 这包括用于控制各 USS 网络上的所有控制器的所有 USS_Drive_Control、USS_Port_Scan、USS_Read_Param 和 USS_Write_Param 指令。
USS_Drive_Control 指令是一个函数块 (FB)。 在程序编辑器中放置 USS_Drive_Control 指令时,系统将通过“调用选项”(Call options) 对话框提示您为该 FB 分配 DB。 如果对于该 USS 网络而言,它是该程序中的条 USS_Drive_Control 指令,则可以接受默认的 DB 分配(或根据需要更改名称),将相应地创建一个新 DB。 但是,如果对于该通道它不是条 USS_Drive_Control 指令,则必须使用“调用选项”(Call options) 对话框中的下拉列表选择先前为该 USS 网络分配的 DB 名称。
USS_Drive_Control 指令是一个函数块 (FB),并且其通过点对点 (PtP) RS485 通信端口处理 CPU 和驱动器之间的实际通信。 每次调用此 FB 可处理与一个驱动器的一次通信。 用户程序必须尽快调用此 FB 以防止与驱动器通信超时。 可在主程序循环 OB 或任何中断 OB 中调用此 FB。
USS_Read_Param 和 USS_Write_Param 指令都是函数 (FC)。 在编辑器中放置这些 FC 时不分配 DB。 而您必须给这些指令的“USS_DB”输入分配合适的 DB 引用。 双击该参数字段,然后单击参数助手图标可查看可用的 DB 名称。
通常,应在循环中断 OB 中调用 USS_Port_Scan FB。该循环中断 OB 的循环时间应设置为小调用间隔的一半左右(例如,1200 波特的通信应使用 350 ms 或更短的循环时间)。
用户程序通过 USS_Drive_Contro FB 可访问 USS 网络上指定的驱动器。 其输入和输出是驱动器的状态和控制。 如果网络上有 16 个驱动器,则用户程序必须具有至少 16 个 USS_Drive_Control 调用,每个驱动器一个调用。 应该以控制驱动器工作所需的速率调用这些块。
只能在主程序循环 OB 中调用 USS_Drive_Control FB。
用户程序可包含尽可能多的这些功能,但在任何特定时刻,每个驱动器只能激活一个读或 写请求。 只能在主程序循环 OB 中调用 USS_Read_Param 和 USS_Write_Param FC。
计算与驱动器通信所需的时间
与驱动器进行的通信与 S7-1200 扫描周期不同步。 在完成一个驱动器通信事务之前,S7-1200 通常完成了多个扫描。
USS_Port_Scan 间隔是一个驱动器事务所需的时间。 下表列出了各个通信波特率下的小 USS_Port_Scan 时间间隔。 比 USS_Port_Scan 间隔更频繁地调用 USS_Port_Scan FB 不会增加事务数。 如果通信错误导致尝试 3 次才能完成事务,则驱动器超时间隔是处理该事务可能花费的时间。 默认情况下,USS 协议库对每个事务多自动进行 2 次重试。
表格 13- 38 计算时间要求
波特率 | 计算小 USS_Port_Scan 调用 间隔(毫秒) | 每个驱动器的驱动器消息间隔超 时(毫秒) |
1200 | 790 | 2370 |
2400 | 405 | 1215 |
4800 | 212.5 | 638 |
9600 | 116.3 | 349 |
19200 | 68.2 | 205 |
38400 | 44.1 | 133 |
57600 | 36.1 | 109 |
115200 | 28.1 | 85 |

评论