1硬件接线与变频器的参数设置S7-1200的USS通信需要配备RS-485通信模块。每个模块可与16个变频器通信,每个CPU可以连接3个通信模块。接线时必须满足下述要求,否则可能毁坏通信接口:1)S7-1200侧的RS-485连接器的5脚必须与MM440的模拟量输入电压的0V端子(2号端子)相连。2)0V线不能与设备的电磁兼容性地相连。RS-485电缆的屏蔽层应接地。电缆长度大于2米时,应在两端设置总线终端电阻。下面是变频器MM440与通信有关的参数设置:1)P0700[0]=5。2)P1000[0]=5。3)基准频率P2000[0]=50.0Hz。4)P2010[0]=9,即波特率为57.6kHz。5)P2011[0](USS从站地址)为1。6)P2012[0]=2,USS协议的过程数据PZD的长度为2个字。7)P2013[0]=4,USS协议的参数标示符PKW的长度为4个字。2S7-1200的组态与编程组态时将RS-485模块拖放到CPU左边的101号槽。1.USS_DRV指令在主程序OB1中调用功能块USS_DRV(FB1071,见下图)来控制变频器。应为每个变频器调用一次USS_DRV,调用时需要指定功能块的背景数据块。同一个USS网络的USS_DRV、USS_PORT、USS_RPM和USS_WPM指令共享该数据块。该指令各参数的意义见在线帮助,下面只介绍编程时需要重点注意的参数。参数DRIVE(变频器的USS地址,1~16)应与变频器的参数P2011[0]相同。PZD_LEN是PLC与变频器通信的过程数据PZD的字数,采用默认值2。实数SPEED_SP是用组态的基准频率(P2000[0])的百分数表示的频率设定值。实数SPEED是以组态的基准频率的百分数表示的变频器输出频率的实际值。2.USS_PORT指令USS_PORT(FC1070)指令是S7-1200和变频器USS通信的接口。在循环中断组织块OB200中调用USS_PORT,每个通信模块使用一条USS_PORT指令。双字参数“BAUD”用于设定波特率(300~115200bit/s)。参数“USS_DB”的实参为USS_DRV的背景数据块。出现通信错误时,S7-1200USS协议库尝试两次重新建立连接,S7-1200与变频器通信的时间间隔应大于调用USS_PORT的最小时间间隔,小于该时间间隔的3倍(即每个变频器的通信超时时间)。从系统手册查阅到波特率为57600bit/s时,这两个时间间隔分别为36.1ms和109ms。设置循环中断OB的时间间隔为50ms。3S7-1200与变频器通信的实验1.PLC监控变频器的实验用变频器的基本操作面板设置好变频器的参数,用以太网监控PLC,用基本操作面板显示变频器的频率。打开OB1,启动程序状态监控功能(见上图)。将参数SPEED_SP的值设置为80%,对应的频率设定值为40Hz。OFF2和OFF3为1状态。接通I0.0对应的小开关,输入参数RUN变为1,电动机开始旋转。基本操作面板显示频率由0增大到40.0Hz,USS_DRV的参数SPEED接近80.0%。令I0.0为0,电动机停车。运行时断开I0.1对应的小开关,电动机自然停车。运行时断开I0.2对应的小开关,电动机快速停车。可以用方向控制位DIR对应的I0.3改变电动机旋转的方向,输出位D_DIR的值和输出参数SPEED的符号随之而变。改变速度给定值SPEED_SP的大小和符号,也可以改变电动机的速度和方向。2.读写变频器的参数实验指令USS_RPM(FC1072)和USS_WPM(FC1073)分别用于读取和改写变频器的参数,在OB1中调用这两条指令。用它们的参数设置变频器地址、参数编号和参数的索引号,参数USS_DB为功能块USS_DRV的背景数据块。用基本操作面板确认变频器中原有的参数和修改后的参数。用实验成功的改写和读取了变频器的参数P1082[0](最高频率)。3.S7-1200与两台变频器通信的实验两台变频器的2号端子(0V)、29号端子(B线)和30号端子(A线)分别连到一起。用基本操作面板设置好两台变频器的参数。在单台变频器项目的OB1的基础上,为站地址为2的变频器增加一条USS_DRV指令,两次调用USS_DRV功能块使用同一个背景数据块DB1。实验表明,可以用RUN、OFF2、OFF3和DIR对应的小开关分别控制两台电动机的起动、停机方式和旋转方向。还可以用指令USS_RPM和USS_WPM读写两台变频器的参数。总的感觉是S7-1200与变频器的通信非常好用,做实验的过程也很顺利。S7-1200与变频器通信的组态、编程和实验的详细情况见《S7-1200PLC编程及应用》第2版: