yanxinyue 发表于 2020-8-11 14:52:07

USS指令库介绍及通讯实例

USS 标准指令库包括 14 个子程序和 3 个中断服务程序。但是只有 8 个指令可供用户使用。一些子程序和所有中断服务程序都在调用相关的指令后自动起作用。每个 USS 库应用都要先进行 USS 通信的初始化。使用 USS_INIT 指令初始化 USS 通信功能。库指令如下图所示,包含PORT0和PORT1两个,分别对应PLC的PORT0口与PORT1口一、调用 USS_INIT 指令图中:a.EN: 初始化程序 USS_INIT 只需在程序中执行一个周期就能改变通信口的功能,以及进行其他一些必要的初始设置,因此可以使用 SM0.1 或者沿触发的接点调用 USS_INIT 指令;b.Mode: 模式选择,执行 USS_INIT 时 ,Mode 的状态决定 是否在 Port 0 上使用 USS 通信功能;
=1设置 Port 0 为 USS 通信协议并进行相关初始化

0恢复 Port 0 为 PPI 从站模式
c.Baud: USS 通信波特率。此参数要和变频器的参数设置一致;
=24002400 bit/s

48004800 bit/s

96009600 bit/s

1920019200 bit/s

3840038400 bit/s

5760057600 bit/s

115200115200 bit/s
d.Active: 此参数用来表示网络上哪些 USS 从站要被主站访问,即在主站的轮询表中激活。网络上作为 USS 从站的驱动装置每个都有不同的 USS 协议地址,主站要访问的驱动装置,其地址必须在主站的轮询表中激活。USS_INIT 指令只用一个 32 位长的双字来映射 USS 从站有效地址表,Active 的无符号整数值就是它在指令输入端的取值。在这个 32 位的双字中,每一位的位号表示 USS 从站的地址号;要在网络中激活某地址号的驱动装置,则需要把相应位号的位置设为二进制“1",不需要激活 USS 从站,相应的位设置为”0"。最后对此双字取无符号整数就可以得出 Active 参数的取值。在表 1 的例子中,我们将使用站地址为 3 的 MM 440 变频器,则须在位号为 03 的位单元格中填入二进制“1"。其他不需要激活的地址 对应的位设置为”0"。取整数,计算出的 Active 值为 00000008 h,即 16#00000008,也等于十进制数 8(如图 1.中的 d)http://www.ad.siemens.com.cn/productportal/prods/s7-200-portal/micropower2013/images/3.gif 建议使用 16 进制数,这样可以每 4 位一组进行加权计算出 16 进制数,并组合成一个整数。当然也可以表示为十进制或二进制数值,但有时会很麻烦,而且不直观。
http://www.ad.siemens.com.cn/productportal/prods/s7-200-portal/micropower2013/images/3.gif 如果一时难以计算出有多个 USS 从站配置情况下的 Active 值,可以使用 Windows 自带的计算器。将其设置为科学计算器模式,可以方便地转换数制。
e.Done: 初始化完成标志f.Error: 初始化错误代码二、分配库存储区地址USS 指令库需要大概 400 个字节的 V 存储区用于支持其工作。调用 USS_INIT 指令后就可以为 USS 指令库分配库存储区。也可以在编程的稍后阶段分配存储区地址,但这一步是必不可少的,否则程序无法通过编译。http://www.ad.siemens.com.cn/productportal/prods/s7-200-portal/micropower2013/images/4.gif 根据 PLC的数据存储区分配原则,分配给库指令的数据区绝对不能与其他程序使用的数据区有任何重叠。否则会造成出错。三、USS 驱动装置控制功能块USS_CTRL 指令用于对单个驱动装置进行运行控制。这个功能块利用了 USS 协议中的 PZD 数据传输,控制和反馈信号更新较快。http://www.ad.siemens.com.cn/productportal/prods/s7-200-portal/micropower2013/images/4.gif 网络上的每一个激活的 USS 驱动装置从站,都要在程序中调用一个独占的 USS_CTRL 指令,而且只能调用一次。需要控制的驱动装置必须在 USS 初始化指令运行时定义为“激活”。1、调用 USS_CTRL 指令图中:a.EN: 使用 SM0.0 使能 USS_CTRL 指令b.RUN: 驱动装置的启动/停止控制
=0停止

1运行
此停车是按照驱动装置中设置的斜坡减速指电机停止
c.OFF2: 停车信号 2。此信号为“1"时,驱动装置将封锁主回路输出,电机自由停车d.OFF3: 停车信号 3。此信号为”1"时,驱动装置将快速停车e.F_ACK: 故障确认。当驱动装置发生故障后,将通过状态字向 USS 主站报告;如果造成故障的原因排除,可以使用此输入端清除驱动装置的报警状态,即复位。注意这是针对驱动装置的操作。f.DIR: 电机运转方向控制。其“0/1”状态决定运行方向g.Drive: 驱动装置在 USS 网络上的站号。从站必须先在初始化时激活才能进行控制h.Type: 向 USS_CTRL 功能块指示驱动装置类型
=0MM 3 系列,或更早的产品

1MM 4 系列,SINAMICS G 110

i.Speed_SP: 速度设定值。速度设定值必须是一个实数,给出的数值是变频器的频率范围百分比还是绝对的频率值取决于变频器中的参数设置(如 MM 440 的 P2009)j.Resp_R: 从站应答确认信号。主站从 USS 从站收到有效的数据后,此位将为“1"一个程序扫描周期,表明以下的所有数据都是最新的k.Error: 错误代码。0 = 无出错。其他错误代码请参考l.Status: 驱动装置的状态字。此状态字直接来自驱动装置的状态字,表示了当时的实际运行状态m.Speed: 驱动装置返回的实际运转速度值,实数。是否频率值跟随设定值的规格化设定n.Run_EN: 运行模式反馈,表示驱动装置是运行(为 1)还是停止(为 0)o.D_Dir: 指示驱动装置的运转方向,反馈信号p.Inhibit: 驱动装置禁止状态指示(0 - 未禁止,1 - 禁止状态)。禁止状态下驱动装置无法运行。要清除禁止状态,故障位必须复位,并且 RUN, OFF2 和 OFF3 都为 0q.Fault: 故障指示位(0 - 无故障,1 - 有故障)。表示驱动装置处于故障状态,驱动装置上会显示故障代码(如果有显示装置)。要复位故障报警状态,必须先消除引起故障的原因,然后用 F_ACK 或者驱动装置的端子、或操作面板复位故障状态.USS_CTRL 已经能完成基本的驱动装置控制,如果需要有更多的参数控制选项,可以选用 USS 指令库中的参数读写指令实现。四、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 数据处理作为后台任务,参数读写的速度要比控制功能块慢一些。因此使用这些指令时需要更多的等待时间,并且在编程时要考虑到,进行相应的处理。
1、读参数指令
以下的程序段读取实际的电动机电流值(参数 r0068)。由于此参数是一个实数,因此选用实型参数读功能块。http://www.ad.siemens.com.cn/productportal/prods/s7-200-portal/micropower2013/images/4.gif 参数读写指令必须与参数的类型配合。
调用 USS_RPM_R 指令读取 MM 440 的输出电流

图中:
a.EN: 要使能读写指令此输入端必须为 1,一般SM0.0调用即可
b.XMT_REQ: 发送请求。必须使用一个沿检测触点以触发读操作,它前面的触发条件必须与 EN 端输入一致
c.Drive: 要读写参数的驱动装置在 USS 网络上的地址
d.Param: 参数号(仅数字)。此处也可以是变量
e.Index: 参数下标。有些参数由多个带下标的参数组成一个参数组,下标用来指出具体的某个参数。对于没有下标的参数,可设置为 0
f.DB_Ptr: 读写指令需要一个 16 字节的数据缓冲区,用间接寻址形式给出一个起始地址。此数据缓冲区与“库存储区”不同,是每个指令(功能块)各自独立需要的。
此数据缓冲区也不能与其他数据区重叠,各指令之间的数据缓冲区也不能冲突
g.Done: 读写功能完成标志位,读写完成后置 1
h.Error: 出错代码。0 = 无错误
i.Value: 读出的数据值。要指定一个单独的数据存储单元
2、写参数指令
写参数指令的用法与读参数指令类似。与读参数指令的区别是参数是功能块的输入。
3、读写多个参数
http://www.ad.siemens.com.cn/productportal/prods/s7-200-portal/micropower2013/images/4.gif 在任一时刻 USS 主站内只能有一个参数读写功能块有效,否则会出错。因此如果需要读写 多个参数(来自一个或多个驱动装置),必须在编程时进行读写指令之间的轮替处理。
四、USS 库指令错误代码

调试中的常见错误及原因

页: [1]
查看完整版本: USS指令库介绍及通讯实例