首页 理论教育 USS通信协议实现S7-1200与变频器通信的方法

USS通信协议实现S7-1200与变频器通信的方法

时间:2023-06-21 理论教育 版权反馈
【摘要】:USS通信协议用于西门子变频器与S7系列PLC之间的通信。为了实现S7-1200与变频器的USS通信,S7-1200需要配备CM 1241 RS485通信模块。每个CPU最多可以连接3个通信模块,建 立3个USS网 络。表7-6 参数P2010[0]与波特率的关系7)设置USS从站地址P2011[0]为1。8)设置P2012[0]的长度为2个字。

USS通信协议实现S7-1200与变频器通信的方法

USS通信协议用于西门子变频器与S7系列PLC之间的通信。变频器具有调节范围宽、精度高、可靠性好、效率高、操作方便、便于与其他设备接口和通信等优点。随着技术的发展和价格的降低,变频器在工业控制中的应用越来越广泛。

PLC通过通信来监控变频器,使用的接线少,传送的信息量大,可以连续地对多台变频器进行监视和控制。还可以通过通信读取和修改变频器的参数,实现多台变频器的联动控制和同步控制。

为了实现S7-1200与变频器的USS通信,S7-1200需要配备CM 1241 RS485通信模块。每个CPU最多可以连接3个通信模块,建 立3个USS网 络。每 个RS485模块最多可以与16个变频器通信,它们组成一个USS网络。

CM 1241 RS485通信模块RS485接口使用9针D型连接器。其3脚和8脚分别是RS 485的B线和A线,硬件接线图见图7-45。

978-7-111-47789-1-Chapter07-52.jpg

图7-45 USS通信的硬件接线图

在接线时必须满足下面两项要求,否则可能毁坏通信接口:

1)S7-1200侧的RS 485连接器的5脚(参考电压0V)必须与MM440的模拟量输入电压的0V端子(2号端子)相连。

2)0V线不能与设备的电磁兼容性地(EMC地)相连。

RS 485电缆应与其他电缆(特别是电动机电缆)保持一定的距离,并将RS 485电缆的屏蔽层接地。总线电缆的长度大于2m时,应在两端设置总线终端电阻。如果使用了共用地线,短距离时可以只在一侧使用总线终端。

1.变频器参数设置

使用USS协议进行通信之前,必须对变频器有关的参数进行设置。可以用价格便宜的基本操作面板来设置变频器的参数。

上电后:BOP显示频率给定值,电动机运行时显示频率实际值。

按P键后显示r0000。按上、下键增、减参数的编号,直到显示出需要修改的参数。

按P键一次或两次,显示出原参数值后,按上、下键增、减参数值。

按P键后新的参数值被写入变频器,同时显示参数的编号。

按Fn键将显示r0000:再按P键返回频率显示模式。

1)令参数P0010=30(工厂的设定值),P0970=1(参数复位),按下P键,将变频器恢复到工厂设定值。复位期间显示“busy”,复位过程大约1min。复位后P0970和P0010均变为0。

2)令参数P0003=3,允许读/写所有参数,用户访问级为专家级。

3)用P0304[0]、P0305[0]、P0307[0]、P0310[0]和P0311[0]分别设置电动机的额定电压、额定电流额定功率、额定频率和额定转速

4)设置参数P0700[0]=5,选择命令源为远程控制方式,即通过RS 485的USS通信接收命令。令P1000[0]=5,频率设定源来自RS 485的USS通信。

5)设置基准频率P2000[0]=50.0Hz,它是串行链路或模拟量输入的满刻度频率设定值。

6)设置参数P2010[0](RS 485串行接口的波特率)为9(57.6kHz,见表7-6)。

表7-6 参数P2010[0]与波特率的关系

978-7-111-47789-1-Chapter07-53.jpg

7)设置USS从站地址P2011[0](1~16)为1。

8)设置P2012[0](USS协议的PZD,即过程数据)的长度为2个字。

9)设置P2013[0](USS协议的PKw,即参数标示符)的长度为4个字。如果设为127,不能读取参数值和过程值。

10)如果令P971为1,设置的参数保存到MM 440的EEPROM中。成功地保存后,此参数自动复位为0。反之仅改写RAM中的参数,断电后改写的参数丢失。

2.S7-1200的组态与编程

在STEP 7 Basic中生成一个名为“USS”的项目,CPU的型号为CPU 1214C。打开设备视图,将RS485模块拖放到CPU左边的101号槽。选中该模块,打开下面的监控窗口的“属性”选项卡。选中左边窗口的“端口组态”组(见图7-30),在右边设置波特率为57.6kbit/s,偶校验。其余的参数可以采用默认值。

实验时发现USS通信与RS-485接口组态的参数没什么关系,可以采用默认的参数。即使组态时设为无奇偶校验,设置的频率与指令USS_PORT设置的频率不同,都可以通信。(www.xing528.com)

(1)USS_DRV指令

用户程序通过USS_DRV功能块(FB1071)访问USS网络上指定的变频器。应为每个变频器调用一次USS_DRV,只能在OB1中调用USS_DRV。

双击打开“程序块”文件夹中的OB1,单击最右边垂直条上的“库”(见图8-20),打开“全局库”窗口,将USS文件夹中的功能块“USS_DRV”拖放到OB1。在自动打开的“调用选项”对话框中,单击“确定”按钮,生成一个默认名称为“USS_DRV_DB”的背景数据块。同一个USS网络的USS_DRV、USS_PORT、USS_RPM和USS_WPM指令共享该数据块,各USS网络分别使用一个这样的数据块。

(2)USS_DRV指令的参数

起动位RUN为1时,使变频器以设置的速度运行。

在变频器运行时,如果位输入参数OFF2变为0状态,电动机在没有制动的情况下惯性滑行,自然停车。如果位输入参数OFF3变为0状态,通过制动使电动机快速停车。

故障确认位F_ACK用于确认变频器发生的故障,复位变频器的故障位。

方向控制位DIR用于控制变频器的旋转方向。也可以用速度设定值SPEED_SP的符号控制变频器的旋转方向。

参数DRIVE是变频器的USS地址(1~16)。

PZD LEN是PLC与变频器通信的过程数据PZD的字数,采用默认值2。

实数SPEED_SP是用组态的基准频率的百分数表示的频率设定值。该参数的符号可以控制变频器的旋转方向。

变量NDR为1表示新的通信数据准备好。

位变量ERROR为1表示发生错误,参数STATUS有效,其他输出在出错时均为零。仅

用USS_PORT指令的参数ERROR和STATUS报告通信错误。

字变量STATUS是请求的状态值,不是从变频器返回的状态字。

位变量RUN_EN为1表示变频器正在运行。

位变量D_DIR用来指示变频器旋转的方向。

位变量INHIBIT指示变频器的禁止位的状态。

位变量FAULT为1表示变频器有故障,消除故障后,可以用F_ACK位来清除此位。

实数SPEED是以组态的基准频率的百分数表示的变频器输出频率的实际值。

(3)USS_PORT指令

USS_PORT(FC1070)指令是S7-1200和变频器USS通信的接口,通过P2P(点对点)通信模块处理CHU和USS网络上变频器的通信。每个P2P通信模块调用一条USS POPT指令,每次执行该指令将处理与一个变频器的一次通信。用户程序应尽快调用该指令,以防止与变频器的通信超时,并使USS DRV调用的USS数据保持最新。

一般在循环中断组织块中调用USS PORT。双击“程序块”文件夹中的“生成新的块”,单击“OB”按钮,选中OB列表中的“循环中断”,生成一个循环中断组织块OB200。将“全局库”窗口的USS文件夹中的功能“USS_PORT”(FC1070)拖放到OB200中(见图7-46)。

978-7-111-47789-1-Chapter07-54.jpg

图7-46 USS_PORT指令

双字“BAUD”用于设定波特率,单位为bit/s,可选300~115200bit/s(见表7-7)。

表7-7 调用USS_PORT指令的时间间隔

978-7-111-47789-1-Chapter07-55.jpg

双击输入参数“USS_DB”对应的<???>,单击出现的978-7-111-47789-1-Chapter07-56.jpg图标,选中出现的DB列表中的USS_DRV的背景数据块“USS_DRV_DB”(DB1)。也可以直接输入DB1。该指令执行出错时,ERROR为1,错误代码在S.FAIUS中。

出现通信错误时,S7-1200 USS协议库尝试2次重新建立连接,S7-1200与变频器通信的时间间隔应大于表7-6中调用USS_PORT的最小时间间隔,小于该时间间隔的3倍(每个变频器的通信超时时间)。执行循环中断OB的时间间隔应在上述两个时间之间。

例程中组态的波特率为57600 bit/s,执行循环中断OB的时间间隔设置为50ms。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈