西门子公司的变频器都有一个串行通信接口,采用RS-485半双工通信方式,以通用串行接口协议(Universal Serial Interface Protocol, USS)通信协议作为现场监控和调试协议, 其设计标准适用于工业环境的应用对象。USS协议是主从结构的协议,规定了在USS总线上可以有一个主站和最多30个从站,总线上的每个从站都有一个站地址(在从站参数中设置),主站依靠它识别每个从站,每个从站也只能对主站发来的报文做出响应并回送报文,从站之间不能直接进行数据通信。另外,还有一种广播通信方式,主站可以同时给所有从站发送报文,从站在接收到报文并做出相应的回应后可不回送报文。
(1) 使用USS协议的优点
1) USS协议对硬件设备要求低,减少了设备之间布线的数量。
2) 无需重新布线就可以改变控制功能。
3) 可通过串行接口设置来修改变频器的参数。
4) 可连续对变频器的特性进行监测和控制。
5) 利用S7-200 PLC CPU组成USS通信的控制网络具有较高的性价比。
(2) S7-200 PLC CPU通信接口的引脚分配
S7-200 SMART上的通信口是与RS-485兼容的D型连接器,具体引脚定义如表5-7 所示。
(3) USS通信硬件连接
1)通信注意事项。
① 在条件允许的情况下,USS主站尽量选用直流型的CPU。当使用交流型的CPU和单相变频器进行USS通信时,CPU和变频器的电源必须接成同相位。
② 一般情况下,USS通信电缆釆用双绞线即可,如果干扰比较大,可采用屏蔽双绞线。
③ 在釆用屏蔽双绞线作为通信电缆时,把具有不同电位参考点的设备互联后在连接电缆中形成不应有的电流,这些电流导致通信错误或设备损坏。要确保通信电线连接的所有设备共用一个公共电路参考点,或是相互隔离以防止干扰电流产生。屏蔽层必须接到外壳地或 9针连接器的1脚。
④ 尽量釆用较高的波特率,通信速率只与通信距离有关,与干扰没有直接关系。
⑤ 终端电阻的作用是用来防止信号反射的,并不用来抗干扰。如果通信距离很近,波 特率较低或点对点的通信情况下,可不用终端电阻。
不要带电插拔通信电缆,尤其是正在通信过程中,这样极易损坏传动装置和PLC的通信端口。
2) S7-200 SMART与变频器的连接。
将变频器(在此以MM440为例)的通信端子口为P+ (29)和N- (30)分别接至S7- 200 SMART通信口的3号与8号针即可。
所有的西门子变频器都可以釆用USS协议传递信息,西门子公司提供了 USS协议指令库,指令库中包含专门为通过USS协议与变频器通信而设计的子程序和中断程序。使用指令库中的USS指令编程,使得PLC对变频器的控制变得非常方便。
(1) USS_INIT 指令
USSJNIT指令用于启用和初始化或禁止MicroMaster变频器通信。在使用其他任何USS协议指令之前,必须执行USS_INIT指令且无错,可以用SM0.1或者信号的上升沿或下降沿调用该指令。一旦该指令完成,立即置位“Done”位,才能继续执行下一条指令。USS_INIT指令的梯形图如图5-23所示,各参数的类型如表5-8所示。
指令说明如下。
1) 仅限为每次通信状态执行一次USS_INIT指令。使用边沿检测指令,以脉冲方式打开EN输入。要改动初始化参数,可执行一条新的USS_INIT指令。
2) “Mode”为输入数值选择通信协议:输入值1将端口分配给USS协议,并启用该协议;输入值0将端口分配给PPI,并禁止USS协议。
3) “Baud”为USS通信波特率,此参数要和变频器的参数设置一致,波特率的允许值为 1 200、2400、4 800、9 600、19 200> 38 400、57 600 或 115 200bit/s。
4) 设置物理通信端口 (0=CPU中集成的RS485, 1=可选CM01信号板上的RS485或 RS232)。
5) “Done”为初始化完成标志,即当USS_INIT指令完成后接通。
6) “Error”为初始化错误代码。
“Active”表示起动变频器,表示网络上哪些USS从站要被主站访问,即在主站的轮询表中起动。网络上作为USS从站的每个变频器都有不同的USS协议地址,主站要访 问的变频器,其地址必须在主站的轮询表中起动。USS_INIT指令只用一个32位的双字来映像USS从站有效地址表,Active的无符号整数值就是它在指令输入端口的取值。如表5-9所示,在这个32位的双字中,每一位的位号表示USS从站的地址号;要在网络中起动某地址号的变频器,则需要把相应的位号的位置设为“1”,不需要起动的USS从站相应的位设置为“0”,最后对此双字取无符号整数就可以得出Active参数的取值。本例中,使用站地址为2的MM440变频器,则须在位号为02的位单元格中填入1,其他不需要起动的地址对应的位设置为0,取整数,计算出的Active值为00000004H,即16#00000004,也等于十进制数4。
(2)USS_CTRL指令
USS_CTRL指令用于控制处于起动状态的变频器,每台变频器只能使用一条该指令。该指令将用户放在一个通信缓冲区内,如果数据端口 Drive指定的变频器被USS_INIT指令的Active参数选中,则缓冲区内的命令将被发送到该变频器。USS_CTRL指令的梯形图如图5-24所示,各参数的类型如表5-10所示。
指令说明如下。
1) USS_CTRL指令用于控制Active(起动)变频器。USS_CTRL指令将选择的命令放在通信缓冲区中,然后送至编址的变频器 Drive(变频器地址)参数,条件是已在USS_INIT指令的Active(起动)参数中选择该变频器。
2) 仅限为每台变频器指定一条USS_CTRL指令。
3) 某些变频器仅将速度作为正值报告。如果速度为负值,变频器将速度作为正值报告,但逆转D_Dir (方向)位。
4) EN位必须为ON,才能启用USS_CTRL指令。该指令应当始终启用(可使用SM0.0)
5) RUN表示变频器是ON还是OFF。当RUN (运行)位为ON时,变频器收到一条命令,按指定的速度和方向开始运行。为了使变频器运行,必须满足以下条件:
① Drive (变频器地址)在USS_CTRL中必须被选为Active (起动)。
② OFF2和OFF3必须被设为0。
③ Fault(故障)和Inhibit (禁止)必须为0。
6) 当RUN为OFF时,会向变频器发出一条命令,将速度降低,直至电动机停止。OFF2位用于允许变频器自由降速至停止。OFF3用于命令变频器迅速停止。
7) Resp_R (收到应答)位确认从变频器收到应答。对所有的起动变频器进行轮询,查找最新变频器状态信息。每次S7-200 SMART从变频器收到应答时,Resp_R位均会打开,进行一次扫描,所有数值均被更新。
8) F_ACK (故障确认)位用于确认变频器中的故障。当从0变为1时,变频器清除故障。
9) DIR (方向)位(“0/1”)用来控制电动机转动方向。
10 ) Drive (变频器地址)输入的是MicroMaster变频器的地址,向该地址发送 USS_CTRL备令,有效地址为0〜31。
ID Type (变频器类型)输入选择变频器类型。将MicroMaster3 (或更早版本)变频器 的类型设为0,将MicroMaster 4或SINAMICS G110变频器的类型设为1。
12) Speed_SP (速度设定值)必须是一个实数,给出的数值是变频器的频率范围百分比还是绝对的频率值取决于变频器中的参数设置(如MM440的P2009)o如为全速的百分比, 则范围为-200.0%〜200.0%, Speed_SP的负值会使变频器反向旋转。
13) Fault表示故障位的状态(0 =无错误,1 =有错误),变频器显示故障代码(有关变 频器信息,请参阅用户手册)。要清除故障位,需纠正引起故障的原因,并接通F_ACK位。
14) Inhibit表示变频器上的禁止位状态(0 =不禁止,1 =禁止)。要清除禁止位,Fault 位必须为OFF, RUN、OFF2和OFF3输入也必须为OFF。
15) D_Dir (运行方向回馈)表示变频器的旋转方向。
16) Run_EN (运行模式回馈)表示变频器是在运行(1)还是停止(0)。
17) Speed (速度回馈)是变频器返回的实际运转速度值。若以全速百分比表示的变频器速度,其范围为-200.0%〜200.0%。
18) Status是变频器返回的状态字原始数值,MicroMaster 4的标准状态字各数据位的含义如图5-25所示。
19) Error是一个包含对变频器最新通信请求结果的错误字节。USS指令执行错误主要定义了可能因执行指令而导致的错误条件。
20) Resp_R (收到的响应)位确认来自变频器的响应。对所有的起动变频器都要轮询最新的变频器状态信息。每次S7-200 SMART PLC接收到来自变频器的响应时,Resp_R位就会接通一次扫描并更新一次所有相应的值。
(3) USS_RPM 指令
USS_RPM指令用于读取变频器的参数,USS协议有3条读指令。
1) USS_RPM_W指令读取一个无符号字类型的参数。
2) USS_RPM_D指令读取一个无符号双字类型的参数。
3) USS_RPM_R指令读取一个浮点数类型的参数。
同时只能有一个读(USS_RPM)或写(USS_WPM)变频器参数的指令起动。当变频器确认接收命令或返回一条错误信息时,就完成了对USS_RPM指令的处理,在进行这一处理并等待响应到来时,逻辑扫描依然继续进行。USS_RPM指令的梯形图如图5-26所示,各参数如表5-11所示。
指令说明如下:
1) 一次仅限启用一条读取(USS_RPM)或写入(USS_WPM)指令。
2) EN位必须为ON,才能启用请求传送,并应当保持ON,直到设置“完成”位,表 示进程完成。例如,当XMT_REQ位为ON,在每次扫描时向MicroMaster变频器传送一条 USS_RPM请求。因此,XMT_REQ输入应当通过一个脉冲方式打开。
3) “Drive”输入的是MicroMaster变频器的地址,USS_RPM指令被发送至该地址。单台变频器的有效地址是0〜31。
4) “Param”是参数号码。“Index”是需要读取参数的索引值。“Value”是返回的参数 值。必须向DB_Ptr输入提供16B的缓冲区地址。该缓冲区被USS_RPM指令使用且存储向 MicroMaster变频器发出的命令的结果。
5) 当USS_RPM指令完成时,“Done”输出为ON, “Error”输出字节和“Value”输出 包含执行指令的结果。“Error”和“Value”输出在“Done”输出打开之前无效。
例如,图5-27所示程序段为读取电动机的电流值(参数r0068),由于此参数是一个实数,而参数读/写指令必须与参数的类型配合,因此选用实数型参数读功能块。
(4) USS_WPM 指令
USS_WPM指令用于写变频器的参数,USS协定有3条写入指令。
USS_WPM_W指令写入一个无符号字类型的参数。
USS_WPM_D指令写入一个无符号双字类型的参数。
USS_WPM_R指令写入一个浮点数类型的参数。
USS_WPM指令梯形图如图5-28所示,各参数的类型如表5-12所示。
指令说明如下:
1) 一次仅限起动一条写入(USS_WPM)指令。
2) 当MicroMaster变频器确认收到命令或发送一个错误条件时,USS_WPM事项完成。当该进程等待应答时,逻辑扫描继续执行。
3) EN位必须为ON,才能启用请求传送,并应当保持打开,直到设置“Done”位,表示进程完成。例如,当XMT_REQ位为ON,在每次扫描时向MicroMaster变频器传送一条 USS_WPM请求。因此,XMT_REQ输入应当通过一个脉冲方式打开。
4) 当变频器打开时,E2PROM输入启用对变频器的RAM和E2PROM的写入;当变频器关闭时,仅启用对RAM的写入。请注意该功能不受MM3变频器支持,因此该输入必须关闭。
5) 其他参数的含义及使用方法,请参考USS_RPM指令。
使用时请注意:在任一时刻USS主站内只能有一个参数读写功能块有效,否则会出错。因此如果需要读写多个参数(来自一个或多个变频器),必须在编程时进行读/写指令之间的轮替处理。
知识点词条:USS通信