一台西门子PLC与5台西门子变频器通讯,使用rs485接口,他们的物理连接怎么连?采用uss协议编程时一台变频器时会编程,但多台变频器要如何编程?
问题补充:
哪位有s7-200的多台uss通讯程序发个给我参考。谢谢
最佳答案
传统的PLC与变频器之间的接口大多采用的是依靠PLC的数字量输出来控制变频器的启停,依靠PLC的模拟输出来控制变频器的速度给定,这样做存在以下问题:
1、需要控制系统在设计时采用很多硬件,价格昂贵
2、现场的布线多容易引起躁声和干扰
3、PLC 和变频器之间传输的信息受硬件的限制,交换的信息量很少。
4、在变频器的启停控制中由于继电器接触器等硬件的动作时间有延时,影响控制精度。
5、通常变频器的故障状态由一个接点输出,PLC能得到变频器的故障状态,但不能准确的判断当故障发生时,变频器是何种故障。
如果PLC通过与变频器进行通讯来进行信息交换,可以有效地解决上述问题,通讯方式使用的硬件少,传送的信息量大,速度快,等特点可以有效地解决上述问题,另外,通过网络,可以连续地对多台变频器进行监视和控制,实现多台变频器之间的联动控制和同步控制,通过网络还可以实时的调整变频器的参数。
目前各个厂家的变频器都相继的开发出了支持连网的功能,比如,很多变频器都有了支持现场总线(如:DEVICENET、PROFIBUS、AS_I)等的接口协议,可以很方便的与PLC进行数据通信。现在主要介绍西门子S7-200和MicroMaster变频器之间的通讯协议USS,使用USS通讯协议,用户可以通过程序调用的方式实现S7-200和MicroMaster变频器之间的通信,编程的工作量小,通讯网络由PLC和变频器内置的RS485通讯口和双绞线组成,一台S7-200最多可以和31台变频器进行通讯,这是一种费用低、使用方便的通讯方式。
一、USS通讯协议介绍
USS通讯协议的功能,所有的西门子变频器都带有一个RS485通讯口,PLC作为主站,最多允许31个变频器作为通讯连路中的从站,根据各变频器的地址或者采用广播方式,可以访问需要通讯的变频器,只有主站才能发出通讯请求报文,报文中的地址字符指定要传输数据的从站,从站只有在接到主站的请求报文后才可以向从站发送数据,从站之间不能直接进行数据交换。在使用USS协议之前,需要先安装西门子的指令库。USS协议指令在STEP7—MICRO/WIN32指令树的库文件夹中,STEP7—MICRO/WIN32指令库提供14个子程序、3个中断程序和8条指令来支持USS协议。调用一条指令时,将会自动地增加一个或几个子程序。
USS协议使用CPU的下列资源:
1)USS协议占用PLC的通讯端口0或1,使用USS——INIT指令可以选择PLC的端口是使用USS协议还是PPI协议,选择USS协议后PLC的相应端口不能在做其它用途,包括与STEP7-WICRO/WIN32的通讯,只有通过执行另外一条USS指令或将PLC——CPU的模式开关拨到RUN或STOP状态,才能钟新在进行PPI通讯,当PLC和与变频器通讯中断时,变频器将停止运行,所以在本例中选择CPU226 因为它有两个通讯端口,当第一个口用于USS通讯时,第二个端口可以用于程序监控,USS指令要占用2300~3600字节的程序存储空间和400个字节的变量存储区间
2)变频器的通讯与CPU的扫描时异步的,完成一次变频器的通讯通常需要几个CPU的扫描周期,通讯时间和链路上变频器的台数、波特率和扫描周期有关,本例中通讯的波特率设定为19200,变频器的台数为3台,经实际调试检测通讯时间大约为50ms.
二、使用USS协议的步骤:
1)安装指令库后在STEP7-Micro/win32指令树的/指令/库/USS PROTOOL文件夹中将出现8条指令,用它门来控制变频器的运行和变频器参数的读写操作,这些子程序是西门子公司开发的用户不需要关注这些指令的内部结构,只需要在程序中调用即可。
2)调用USS—INIT初始化改变USS的通讯参数,只需要调用一次即可,在用户程序中每一个被激活的变频器只能用一条USS-DRIVE-CTRL指令,可以任意使用USS-RPM-X 或USS-WPM-X指令,但是每次只能激活其中的一条指令。
3)为USS指令库分配V存储区。在用户程序中调用USS指令后,用鼠标点击指令书中的程序块图标,在探出的菜单中执行库内存命令,为USS指令库使用的397个字节的V存储区指定起始地址,
4)用变频器的操作面板设置变频器的通讯参数,使之与用户程序中所用的波特率和从站地址相一致。
5)连接CPU和变频器之间的通讯电缆,为了提高看干扰能力最好采用屏蔽电缆。
三、USS指令说明
1、初始化指令USS-INIT
初始化指令USS-INIT用于允许或禁止PLC和变频器之间的通讯,在执行其他USS协议前,必须先成功的执行一次USS-INIT指令,只有当该指令成滚执行完成后其完成位(DONE)置位后,才能继续执行下面的指令。次USS-INIT指令的参数如表1所示:
2、控制指令USS-CTRL
USS-CTRL指令用于控制已经用USS-INIT激活了的变频器,每台变频器只能使用一条这样的指令,该指令将用户命令放在一个通讯缓冲区内,如果指令的参数DRIVE指定的变频器已经激活,缓冲区内的命令将被发送到指定的变频器,该指令的参数如表2所示:
3、读取变频器参数的USS_RPM_X指令
读取变频器参数的指令包括USS_RPM_W; USS_RPM_D; USS_RPM_R三条指令,分别用于读取变频器的一个无符号字,一个无符号双字和一个实数类型的参数,该指令的参数如表3所示:
4、写变频器参数的USS_WPM_X指令
写变频器参数的指令包括USS_WPM_W; USS_WPM_D; USS_WPM_R三条指令,分别用于向指定变频器写入一个无符号字,一个无符号双字和一个实数类型的参数,该指令的参数如表4所示:
四、在使用USS协议时变频器的相关参数设定如下(以MM440为例)
1、P0003=3 允许访问变频器的所有参数。
2、P0970=1 允许变频器通过参数复位。
3、P0700=5 变频器的控制方式选择为通讯方式。
4、P2010[2>=6 变频器的USS波特率选择为9600
5、P2011[0>=11 变频器的USS地址0~31
提问者对于答案的评价:
谢谢!
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc178883.html