专题介绍:配置PROFINET子站


基本信息

PROFINET由PROFIBUS国际组织(PROFIBUS International,PI)推出,是新一代基于工业以太网技术的自动化总线标准。目前KQD平台集成的PROFINET协议栈不需要PROFINET专用网卡,使用可以收发原始网络帧的普通网卡即可。协议栈满足PROFINET的以下子集:

  • 符合性等级A和B
  • 实时类1(RT通讯,延时小于10ms)

目前KQD平台可以支持的网卡有:

  • DP83848
  • LAN8720
  • W5500(工作于RAWMAC模式)

因为使用普通网卡,目前的协议栈不支持IRT通讯(延时小于1ms),但是在满足速度要求的场合,可以大幅降低硬件成本。这里以开发板DK60-STM32F412RE为例,介绍如何使用向导配置PROFINET,建立与S7-200 SMART的通讯。开发板的详细信息可以参考介绍:STM32F412开发板DK60-STM32F412RE

向导配置

首先,需要参考开发板DK60-STM32F412RE的硬件电路完成基础硬件配置,可以参考:专题介绍:使用向导来生成蓝图

按照专题介绍中步骤完成向导配置或者直接导入向导配置文件:DK60-STM32F412RE-Wizard.bin

选择TCP/IP通讯选项卡,将网卡W5500A的PROFINET协议配置由“仅支持LLDP/DCP协议”修改为“支持完整从站协议”。

点击确定即可生成蓝图。蓝图上传到服务器;完成开发板的烧录;PLC类型部署到本地后,即可开始进行PROFINET配置。

PROFINET配置

在KQD Application Editor中选择Designer最新部署的PLC类型后,即可在项目的系统扩展中,添加PROFINET配置信息:

配置条目的名称没有特殊要求,这里输入“E0”后确定:

此时出现PROFINET配置界面:

制造商ID、设备ID、制造商名称、订货号用来进行设备的识别,更改它们后必须通过GSDML文件同步到PROFINET主站。为了区别不同厂家的不同产品,软件会先随机生成一组ID。可以点击“随机ID”按钮重新生成新的标识,也可以手动输入来指定。

下面的列表可以添加槽信息和模块信息

槽信息包含I、Q、AI、AQ寄存器的偏移量(字节单位)。如果槽上挂载了模块,那么模块的数据会根据槽上配置的偏移量去PLC中进行寄存器读写。

点击“添加”按钮,选择添加槽:

可在右边对添加的槽进行设置:

修改完后注意点击“修改”按钮,保存修改。

在本例中,总共配置2个槽(目前的协议栈只支持两个槽),第1个槽的寄存器偏移都是0,第2个槽的寄存器偏移都是8:

模块信息包含以下条目:

  • 符号:必须由字母和数字组成,首字母必须是字母,用于内部的标识,各模块符号不能重复。
  • ID:协议中通过此ID来区分不同的模块,各模块ID不能重复。
  • 名称:协议中通过此名称来区分不同的模块,各模块名称不能重复。
  • 说明:模块功能的详细说明(协议里面模块加载子模块的名称),各模块说明不能重复。
  • 数据类型:如果是数字量,模块读写I、Q的数据。如果是模拟量,模块读写AI、AQ的数据。
  • 输入数据数量:字节单位,如果是模拟量模块,必须是2的倍数。
  • 输出数据数量:字节单位,如果是模拟量模块,必须是2的倍数。

点击“添加”按钮,添加模块:

可在右边对添加的模块进行设置:

修改完后注意点击“修改”按钮,保存修改。

在本例中,总共配置了3个模块:数字量输入模块、数字量输出模块、模拟量模块:

这个简单的例子就配置完成了,配置是跟随梯形图项目一起保存的,因为不同的梯形图项目可能需要共用同一个配置(也共用同一个GSDML文件),因此强烈建议将PROFINET配置导出到文件,这样下次需要编程其他子站,或者是需要生成GSDML文件时,可以再次导入配置。

最后,将PROFINET配置导出到GSDML文件,以供PROFINET主站使用:

S7-200 SMART导入GSDML文件且简单编程

打开S7-200 SMART的编程软件STEP 7-MicroWIN SMART,点击GSDML管理按钮:

点击“浏览”按钮,选择前面生成的GSDML文件:

因为GSDML的协议版本和编程软件的不一致,会弹出一个警告对话框,这里直接点击“是(Y)”:

最后点击确定关闭GSDML管理对话框。

在工具的向导按钮中,点击PROFINET按钮:

在PROFINET配置向导中,选择PLC的角色为控制器;修改IP地址为192.168.1.140(开发板默认地址是192.168.1.110,需要在同一网段);点击下一步:

将:PN60 SeriesV0.1.0拖拽到设备表中去,设备名修改成开发板默认的设备名“kqd-dev”;IP设置选择为“固定IP”(这里如果选择用户设置,则需要在后面输入你希望设置的IP,PROFINET主站在找到设备后,如果发现IP不一致,会通过DCP协议自动修改设备IP);最后点击下一步:

将模块PN60 AI4AQ2拖到槽1上;设置更新事件为8ms;设置数据保持为12;最后点击“生成按钮”:

弹出的信息提示对话框,点击“确定即可”:

在软件STEP 7-MicroWIN SMART中,编写一个简单的梯形图,使QW128在10秒内,0到1000循环变化:

将系统快和程序块都下载到西门子PLC中去,便完成了PROFINET主站的程序编写。

开发板DK60-STM32F412RE的简单编程

在KQD Application Editor中添加系统扩展TinyLcd,并在首页中添加一个静态进度条,一个变量:

将静态进度条的值绑定为PLC变量VW40;将变量也绑定为PLC变量VW40。
 

编写梯形图,将通过PROFINET接收到的变量AQW0移动到VW40方便LCD显示:

将程序下载到开发板,便完便完成了PROFINET从站的程序编写。注意PROFINET配置下载后,需要硬件复位PLC才能生效。

通讯验证

将西门子PLC和开发板DK60-STM32F412RE放到同一网段中去,可以观察到西门子PLC的通讯红灯消失(找到了PROFINET从站kqd-dev),开发板接收到了主站循环变化的数据,显示在LCD屏幕上:

相关文件