以CM1241 RS422/485与SINAMICS V20变频器USS通信为例,通信任务要求S7-1200PLC控制变频器的启停和频率,并轮询修改和读取变频器的加减速时间。
1.本例中使用的硬件
•CPU 1217CDC/DC/DC(6ES7217-1AG40-0XB0)V4.2;
•CM1241 RS422/485(6ES7241-1CH32-0XB0)V2.2;
•SINAMICS V20(6SL3210-5BE03-7UV0)V3.93;
•1LA9电机(1LA9060-4KA10-Z);
•PROFIBUS电缆及总线连接器。
2.USS通信接线
CM1241 RS422/485与SINAMICS V20 USS通信总线采用RS485网络,设备之间使用西门子PROFIBUS电缆连接,屏蔽层双端接地。CM1241 RS422/485通信端口使用带有终端电阻和偏置电阻的西门子PROFIBUS总线连接器。SINAMICS V20通信端口为端子连接,端子6、7用于RS485通信,当变频器处于通信总线终端时,需要加终端电阻和偏置电阻,其中P+与N-端子间的终端电阻为120Ω;10V与P+端子间的上拉偏置电阻为1500Ω,0V与N-端子间的下拉偏置电阻为470Ω。CM1241 RS422/485与SINAMICS V20变频器USS通信接线如图9-61所示。
①通信板CB1241作为终端设备连接到USS网络时,连接“TA”和“TRA”以及“TB”和“TRB”以终止网络。
②PROFIBUS电缆红线(信号+)。
③PROFIBUS电缆绿线(信号-)。
图9-61 USS通信接线
3.SINAMICS V20变频器设置
SINAMICSV20的启停和频率控制通过PZD过程数据来实现,参数读取和修改通过PKW参数通道来实现。可以使用连接宏Cn010实现SINAMICS V20的USS通信,也可以直接修改变频器参数。变频器参数设置步骤如下:
(1)恢复工厂设置
设置参数P0010(调试参数)=30,P0970(工厂复位)=21。
执行恢复工厂设置操作将所有参数以及所有用户默认设置复位至工厂状态,但参数P2010、P2021、P2023的值不受工厂复位影响。
(2)设置用户访问级别
设置P0003(用户访问级别)=3(专家访问级别)。
(3)设置变频器参数值
S7-1200 PLC与SINAMICS V20变频器USS通信需要对变频器设置命令源、协议、波特率、地址等参数。选择连接宏Cn010后,需要将P2013的值由127(PKW长度可变)修改为4(PKW长度为4);还需要将参数P2010的值由8(波特率38400)修改为6(本例中使用波特率为9600)。SINAMICS V20参数P2010USS所支持的波特率见表9-27,变频器参数设置见表9-28。
表9-27 参数P2010 USS所支持的波特率
表9-28 SINAMICS V20设置变频器参数值
(续)
(4)变频器重新上电
在更改通信协议P2023后,需要对变频器重新上电。在此过程中,请在变频器断电后等待数秒,确保LED灯熄灭或显示屏空白后再次接通电源。
4.USS通信编程
USS通信指令位于指令选项卡“通信>通信处理器>USS通信”下,用户可按如下步骤进行USS编程,以实现本例中SINAMICSV20变频器的启停控制和轮询读写数据的任务。
(1)控制SINAMICSV20变频器的启停和速度改变
将“USS_Drive_Control”指令拖入到Main[OB1]程序段1中,默认自动分配背景数据块“USS_Drive_Control_DB”,并对指令的输入输出引脚赋值。输入组态频率的百分比到SPEED_SP,当RUN=TURE时,变频器以预设速度运行;如果在驱动器运行时RUN变为FLASE,电动机将减速直至停止,“USS_Drive_Control”的执行状态和变频器返回的状态通过该指令的输出显示,如图9-62所示。
图9-62 控制变频器启停和速度编程
“USS_Drive_Control”指令各引脚的解释如下所述:
•RUN:驱动器起始位。
•OFF2:自由停止位。FLASE:将使驱动器在无制动的情况下自然停止。本例中OFF2=TURE。
•OFF3:快速停止位。FLASE:将通过制动的方式使驱动器快速停止。本例中OFF3=TURE。
•F_ACK:故障确认位。
•DIR:驱动器方向控制。
•DRIVE:驱动器USS地(有效范围1~16)。本例中变频器地址Drive=1。
•PZD_LEN:PZD数据的字长度。有效值为2、4、6或8个字。本例中为2。
•SPEED_SP:以组态频率的百分比设置驱动器速度。(有效范围-200.0~200.0)。
•CTRL3~CTRL8:控制字。写入驱动器上用户可组态参数的值,需要在驱动器上组态该参数。
•NDR:新数据就绪。成功接收到一个新的消息,置为TRUE并保持一个周期。
•ERROR:错误位。通信有错误时,置为TRUE并保持一个周期。
•STATUS:错误状态(STATUS不是驱动器返回的状态值)。(www.xing528.com)
•RUN_EN:驱动器运行状态位。FALSE:变频器停止;TRUE:变频器运行中。
•D_DIR:驱动器运行方向位。
•INHIBIT:驱动器禁止状态位。FALSE:未禁止;TRUE:已禁止。
•FAULT:驱动器故障位。TRUE:无故障;TRUE:故障。
•SPEED:以组态速度百分数表示的驱动器当前速度值(显示驱动器状态字2的标定值)。
•STATUS1~STATUS8:驱动器返回的状态字。
用户可使用DIR和SPEED_SP参数控制驱动器旋转方向。以电动机按正向旋转接线为例,驱动器旋转方向见表9-29。
表9-29 SPEED_SP和DIR控制驱动器旋转方向
(2)修改SINAMICSV20变频器的加减速时间
在Main[OB1]程序段2和程序段3,通过“USS_Write_Param”指令将加减速时间写入到变频器,该指令的执行状态通过该指令的输出显示,如图9-63所示。
“USS_Write_Param”指令各引脚说明:
•REQ:发送请求。REQ=TRUE时,发送新请求。如果该指令正在处理USS请求,将忽略新请求。
•DRIVE:驱动器USS地址(有效范围1~16)。
•PARAM:要写入的驱动器参数。该参数的范围为0~2047。
•INDEX:要写入的驱动器参数索引。
•EEPROM:存储到驱动器EEPROM。TRUE:写参数将存储在驱动器EEPROM中,但不能过多使用永久写操作;FALSE:写操作是临时的,在驱动器循环上电后不会保留。
•VALUE:要写入的参数值。
•USS_DB:指向“USS_Drive_Control_DB”.USS_DB。
•DONE:写入驱动器数据完成位。
•ERROR:错误位。有错误时,置为TRUE并保持一个周期。
•STATUS:请求的错误状态(STATUS不是驱动器返回的状态值)。
(3)读取SINAMICSV20变频器的加减速时间
图9-63 写加减速时间到变频器
在Main[OB1]程序段4中编写程序,当“USS_Write_Param”完成位DONE=TRUE或出现非“16#818A”错误时,复位写操作并置位读操作。因为USS执行参数读写请求完成后,还需发送空的PKW请求到变频器并由指令确认才能对变频器执行下次读写,如果立即调用读写指令将导致“16#818A”错误,所以当ERROR=TURE且报错为“16#818A”时不能复位本次操作,直到DONE=TRUE或出现其他错误时才能复位本次操作。
在程序段5拖入“USS_Read_Param”指令,并对指令的输入输出引脚赋值,参数设置同“USS_Write_Param”指令,当EN和REQ=TURE时,读取变频器的加减速时间,如图9-64所示。
“USS_Read_Param”指令各引脚说明:
•DONE:读取驱动器数据完成位。TURE:表示已从驱动器读取有效数据并已将其传送到CPU。
•VALUE:已读取的参数的值。
•其他输入输出引脚同“USS_Write_Param”说明。
为了实现对变频器读写参数的轮询,当“USS_Read_Param”完成位DONE=TRUE或出现非“16#818A”错误时,需要复位本次读操作并置位写操作,如图9-65所示。
图9-64 USS_Read_Param
图9-65 返回写操作轮询
(4)控制USS通信
为确保通信的响应时间恒定,防止驱动器超时,建议从循环中断OB调用“USS_Port_Scan”。在程序块下双击添加新块,选择循环中断“Cyclic interrupt”,默认编号为30。为尽快处理USS通信任务,应该设置较短循环时间,本例中循环时间设置为30ms,如图9-66所示。
在循环中断OB30中,将“USS_Port_Scan”指令拖入到程序段1中,默认自动分配背景数据块“USS_Port_Scan_DB”,并对指令的输入输出引脚赋值,如图9-67所示。
“USS_Port_Scan”指令各引脚说明:
图9-66 添加循环中断
•PORT:端口硬件标识符。本例中为269。
•BAUD:用于USS通信的波特率。波特率需要与变频器设置一致。
•USS_DB:指向“USS_Drive_Control_DB”.USS_DB。
•ERROR:该输出为真时,表示发生错误,且STATUS输出有效。
•STATUS:错误代码。
图9-67 USS_Port_Scan指令
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。