本文介绍的是DeviceNet通讯的实例,是以AB的PLCCOMPACTLOGIX系列,变频器是用SchneiderATV71系列.一.对变频器进行参数设置1.把变频器的命令通道和给定通道均设为通讯卡方式命令和给定通道的设置2.把DeviceNet卡上的配置开关的7,8位拨到ON状态,把节点地址和速率配置权交给PLC配置软件来配置。开关7开关8数据传输速率00125Kbit/S01250Kbit/S10500Kbit/S11软件配置数率和节点地址DeviceNet节点地址和速率配置二.PLC的配置1.RSNetWorxforDeviceNet软件配置网络网络配置工具RSNetWorxforDeviceNet是Rockwell®的一个应用软件,可被用来设置DeviceNet网络并配置所连接的设备。将PLC和变频器都上电,在RSLinx中设置驱动程序后,启动RSNetWorxforDeviceNet。在RSNetWorxforDeviceNet软件里点击扫描网络。查看设备。RSNetWorx软件出现BrowseforNetwork对话框,则RSLinx已配置有多个驱动程序。网络扫描按钮选择您使用的DeviceNet网络,并单击OK。如果RSNetWorx没有对应于某设备的EDS文件,则该设备可能被显示为不能识别的设备,这就需要给设备安装EDS文件。适用于Altivar变频器的专有EDS文件(A71v**_E.eds)和图标(Altivar_71.ico)在随每台变频器提供的CD-ROM光盘中发行。此外也可以在网上获得:下图是软件扫描后得到的网络:RSNetWorx在线扫描生成的图型从上图得知ATV71的节点地址是33。右击变频器选择calssinstanceeditor,进入相应画面对变频器地址进行规划。配置扫描到的ATV71进入配置画面:配置扫描到的ATV71在AvailableDevices框中选中ATV71Drive将其移入Scanlist框里。点击Input项查看输入地址的配置。配置ATV71的DeviceNet输入字地址从配置表里可以看出变频器反馈给PLC的地址是四个字:2:I.Data[0]和2:I.Data[1]这两个双字。至于我们每个字返回的是什么含义取决于变频器的设置。通过[1.9-COMMUNICATION](COM-)菜单的[COM.SCANNERINPUT](ICS-)子菜单对其进行配置。如果我们只需要读取变频器的命令字状态和转速状态,只需要对第一和第二字设置,其余不用。设置如下:设置ATV71的控制字和状态字设好了就意味着地址2:I.Data[0]的0~15位反映的是3201的状态,16~31位反映是8604的状态。如果还想读取更多的数据值,就需要把想读取的地址设置到其他的对应参数字里。例如:要读取电机电压,就把对应的逻辑地址3208设到Scan.In4address里。如下:控制字状态参数值状态配置ATV71DeviceNet输入第三字功能这样的设置就意味着:2:I.Data[0]的0~15位反映的是8603的状态,16~31位反映是8604的状态,2:I.Data[1]的0~15反映的是3208的状态。你最多可以读取4个字的状态,这是由EDS的文件配置决定的。点击Output项查看输出地址的分配:配置ATV71DeviceNet输出字地址3208电机电压的逻辑地址8603输出分配表中看出PLC发送给变频器的地址也是两个双字:2:O.Data[0]和2:O.Data[1]。这些字的定义同样需要对你变频器的参数进行设置,方法和前面输入读取是一样的。例如我要发送起停信号和参数值给变频器,需要对变频器的设置如下:配置ATV71通讯参数设置好以后就把地址也明确了:2:O.Data[0]的0~15位是控制字,16~31位是参数字。同样的道理如果你想写更多字,只要把想写的逻辑地址设置到变频器中来,方法和读数据是一样的,同样最多可以写4个字。这些输入输出地址都是软件自动分配的,如果不想自动分配也可以手动分配,点击对话框中的Unmap和Advanced进行手动分配地址。配置完成后按应用确认键,及可以把配置好的数据保存在PLC中。记住输出和输入的地址,在程序编制时会用到。2.PLC程序编制打开PLC编程软件RSlogix5000,打开通讯驱动软件Rslinx,选择自己所用的PC与PLC之间的连接的驱动方式。在编程软件里要把硬件模块配置配好,按照各个模块的实际排放位置配置,配置好各个模块也就是定义好了各个物理通道。模块配置如下,在第二槽内放置了DeviceNet扫描模块。8501控制字地址速度给定地址配置PLCDeviceNet模块在前面说道,用RSNetWorxforDeviceNet软件在ONLINE状态下按下应用确认键就可以把配置好的网络数据保存在PLC里,这里介绍下以外一种方法,就是把配置文件到如到DeviceNet模块信息里,在程序下载时一起保存到PLC里。双击击已经配置好的DeviceNet扫描模块进入属性画面,点击RSNetWorx选项,将配置好的文件导入,按OK确认。CPU:L35E第二个模块位DeviceNet扫描模块1769-SDN装载配规划好的DeviceNet网络配置好模块就进入编程界面编程。下例的程序主要完成PLC对ATV71的读和写:写起停命令和转速值,读变频器的当前转速值。根据前面讲到的方法把变频器的相应的参数设置好。首先要将DeviceNet模块使能,这是必须的步骤,否则模块不能运行。然后程序分别给出命令字和参数值。这里给出参数值是转速值,与频率值之间的关系是:1HZ=转速/30。命令字根据通讯协议我们常用的命令字为:启动正转:16#800F启动反转:16#880F停止:16#800E.程序第一步先让使能位置位。该位是系统自动生成,只需要在变量表里直接调用就可以了。导入配置文件RSNetWorxforDeviceNet启动按钮PLC软件自动生成的地址表在用BTD命令把相应的位值传送到系统分配的地址。在写控制字和参数值是目的地址都是Local:2:O.Data[0],但是传送的地址起始位不一样。控制字放到Local:2:O.Data[0]的bit0开始的16个位长,而参数值传送到Local:2:O.Data[0]的第16位开始16个位长。程序里用到的指令读转速值也用BTD命令。数据来源是Local:2:I.Data[0],从第16位开始16个位长。读到的数据存放在FRE_FeedBack中。程序里用到的指令完整程序如下:PLC完整程序