专题介绍:PLC程序的远程监控与升级


基本信息

KQD平台针对PLC程序的远程维护开发了KQDNET协议。并针对此协议在英特网上部署了数据交换服务器。得益于KQDNET协议,我们可以方便的对远程设备进行PLC程序的监控与升级,操作远程PLC设备就像操作本地设备一样方便。作为扩展,KQDNET协议也允许远程设备作为路由,转发服务器的数据。也就是说,只要是与远程设备在同一个网段的其他设备,我们都可以进行远程维护。

连接设备本身

设备作为KQDNET路由

KQDNET协议的主要特点:

  • 提供专用数据交换服务器,且数据交换服务器采用分布式架构,通讯更稳定。
  • 通讯数据采用加密传输,保密性更好。
  • 采用UDP通讯自主控制数据校验与重发,比常规TCP通讯有更好的延时容忍度。
  • 支持普通的TCP/IP透传模式,同时也针对MODBUS、PPI协议做了优化,网络响应更快。
  • 如果是MODBUS、PPI协议,可以实现TCP/IP到串口、CAN通讯口的相互转换,KQDNET路由自动对报文数据进行格式转化。
  • 提供专门的连接软件KQD NET Connector,具有账号管理功能,账号关联的设备信息保存在服务器上,随用随取。

这里以开发板DK60-STM32F412RE为例,介绍如何使用向导添加4G-CAT模块驱动、添加KQDNET协议支持。然后通过KQD NET Connector软件,远程连接到开发板,对开发板进行PLC程序的远程监控和升级,同时让开发板作为路由,对S7-200 SMART进行远程监控和升级。开发板的详细信息可以参考介绍:STM32F412开发板DK60-STM32F412RE

向导配置

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

添加4G-CAT模块驱动

首先按照专题介绍中的步骤完成向导配置或者直接导入向导配置文件。然后参考开发板DK60-STM32F412RE的4G-CAT模块链接:

4G-CAT模块与MCU通过USART6的PA11、PA12来进行数据交换。因为前面基础硬件配置中并没有配置USART6,所以这里需要先配置串口USART6。选择“串口通讯”选项卡,点击USART6:

  • 勾选“使能此串口模块”。
  • 勾选DMA硬件加速的“使能”。
  • 确定发送管脚为PA11,接收管脚为PA12。
  • 因为此串口为4G-CAT模块专用,其他协议自由口、MODBUS、PPI都不用使能。

配置好串口后,下一步我们添加EC600网卡。选择“TCP/IP通讯”选项卡,点击“添加”按钮下面的“添加EC600”命令:

选择网卡EC600A,在硬件选项卡中,选择串口为USART6,PEN管脚为PB2,PWK管脚为PA15:

添加KQDNET协议

选择网卡EC600A,在“KQDNET”选项卡中,勾选“使用此端口尝试连接到KQDNET服务器”:

选择网卡W5500A,在“KQDNET”选项卡中,勾选“使用此端口尝试连接到KQDNET服务器”,勾选“使用此端口连接本地其他设备(作为KQDNET TCP/IP路由使用)”:

选择网卡W5500A,在“MODBUS”选项卡中,勾选“作为KQDNET路由时,可以通过此端口连接其他MODBUS设备”:

选择网卡W5500A,在“PPI”选项卡中,勾选“作为KQDNET路由时,可以通过此端口连接其他PPI设备”:

选择“串口通讯”选项卡,点击“USART2”,在“MODBUS”选项卡中,勾选“作为KQDNET路由时,可以通过此端口连接其他MODBUS设备”:

点击“USART2”,在“PPI”选项卡中,勾选“作为KQDNET路由时,可以通过此端口连接其他PPI设备”:

同样的,在“USART3”的MODBUS协议和PPI协议中,勾选“作为KQDNET路由时,可以通过此端口连接其他MODBUS设备”。此时,完整的KQDNET通讯链路如图所示:

  • 开发板在上电后会尝试通过4G-CAT1模块EC600或W5500连接KQDNET服务器,直到其中一个网卡建立正确连接,否则会一直尝试。
  • 建立与KQDNET服务器的连接后,用户可以通过服务器对开发板进行梯形图程序的监控和升级。
  • 网卡W5500A可以作为Modbus/PPI主站,连接网络中的其他从站设备,转发KQDNET服务器的数据,实现对网络中其他设备梯形图程序的监控和升级(例如S7-200 SMART)。
  • 网卡W5500A可以作为TCP客户端,连接网络中的其他TCP服务器,转发KQDNET服务器的数据,实现远程数据透传。
  • USART2可以作为Modbus/PPI主站,连接网络中的其他从站设备,转发KQDNET服务器的数据,实现对网络中其他设备梯形图程序的监控和升级(例如S7-200 SMART)。
  • USART3可以作为Modbus/PPI主站,连接网络中的其他从站设备,转发KQDNET服务器的数据,实现对网络中其他设备梯形图程序的监控和升级(例如S7-200 SMART)。

点击确定即可生成蓝图。蓝图上传到服务器;完成开发板的烧录;PLC类型部署到本地后,便完成了硬件部署。

连接前的准备

安装插件

因为需要在电脑上虚拟一个网卡供软件连接远程设备,需要安装虚拟网卡驱动:tap-windows-9.21.2,在软件包中找到这个程序:

双击此程序安装驱动即可。

为了支持Profinet协议对网络进行扫描,对站点的IP和名称进行编辑,需要安装网卡底层操作驱动:npcap-1.60,在软件包中找到这个程序:

双击此程序安装驱动即可。

需要注意安装时需要勾选WinPcap API兼容模式,否则不能正常启动软件KQD NET Connector。

注册/登录

打开软件KQD NET Connector

如果没有账号,需要先注册账号。注意这里的账号和KQD Designer的账号并不通用,即使注册过了KQD Designer账号,这里依然需要重新注册。

登陆后,即进入设备管理界面:

设置通讯

将开发板通过网线或交换机连接到电脑,点击“通讯设置”按钮,选择“Ethernet”连接方式,点击“查找CPU”按钮,稍等便可以找到开发板,点击开发板的IP地址后,点击确定。

更新系统块

点击“系统块”的“读取”按钮:

因为系统块从来没有下载过,这里会弹出错误对话框,直接点击确定即可:

可以在信息输出窗口看到开发板4G-CAT1模块的卡号,可以点击鼠标右键菜单中的复制命令,将此卡号复制下来。这个ICCID的卡号流量到期后在运营商充值的标识,请妥善保管。

点击“系统块”中,PLC类型下方的蓝色符号:

弹出“系统块”对话框,这里可以配置每个通讯端口的通讯参数,协议等。在右边导航点击“Kqdnet”,进入KQDNET协议配置:

这里不使用登录密码,预置一个信息“于田南路36号”。

点击“确定”后,系统块数据已经保存在软件中,再点击“写入”按钮,写入开发板:

写入KQDNET设备账号

虽然在向导中配置了KQDNET协议,但是登录KQDNET服务器还需要设备账号。设备账号需要在KQD Designer中申请,测试阶段可加我微信申请。获取账号文件后,点击网络信息的“写入”按钮,写入设备账号:

写入文件后,需要先复位开发板,然后读取“系统块”:

此时在“本地设备”框中,应该会显示设备的ID和其他访问信息。

点击主工具栏中的“添加位置”按钮,输入位置名称“于田南路36号”,点击确认:

选择“于田南路36号”,点击主工具栏中的“添加路由器”按钮,弹出对话框中路由器名称输入“开发板1”,点击“本地设备”按钮,导入本地连接开发板的信息,点击“确认”:

此时可以看到开发板1已经连接到了KQDNET服务器,连接延时是145ms,连接方式是WIFI(实际上是4G-CAT1,此处显示有误),信号强度是94%,预置信息是“于田南路36号”,和开始系统块中的设置匹配。

最后,建议将项目信息“上传”到服务器,这样设备信息就记录在KQD NET Connector的账号之中了,只要记得你的账号,下次就可以从服务器“下载”项目,从而获得你的远程KQDNET设备信息。

连接设备本身

设置虚拟网卡

点击工具条的“设置”按钮,点击“刷新网卡信息”按钮,确保至少有一个虚拟网卡。可以通过右侧的“添加网卡”、“删除网卡”按钮来添加删除虚拟网卡,也可以通过“设置IP地址”来修改网卡地址。

使用KQD Application Editor通过MODBUS协议连接

返回账户设备,设备树中点击“开发板1”,点击主工具栏中的“添加设备”按钮,弹出对话框中设备名称输入“我自己”,协议选择“MODBUS”,虚拟端口选择“0”,点击确定:

设备树中点击“我自己”,本地电脑框中,“监听的IP地址”选择虚拟网卡的IP地址,“端口”选择502,点击“连接”按钮:

弹出密码对话框,因为我们在系统块中并没有设置密码,直接点击“确认”:

若设备树中“我自己”显示“已连接”,表示通道已经建立:

打开软件KQD Application Editor,PLC类型选择前面部署的,编写一个简单的梯形图程序:

“项目管理”树中双击通讯,在“通讯参数”对话框中,选择“Ethernet”通讯方式,协议选择“Modbus”,主机名称直接输入虚拟网卡的地址“192.168.50.1”,点击“确定”按钮:

点击工具栏中的“下载”按钮,将程序远程下载到开发板,再点击“连接”按钮,进入梯形图监控模式:

可以看到通过4G-CAT1模块连接的网络应答的延时为160ms,和前面KQD NET Connector反馈的延时比较接近:

使用STEP 7-MicroWIN SMART通过PPI协议连接

断开连接,设备树中点击“开发板1”,点击主工具栏中的“添加设备”按钮,弹出对话框中设备名称输入“我自己”,协议选择“PPI”,虚拟端口选择“0”,点击确定:

设备树中点击“我自己”,本地电脑框中,“监听的IP地址”选择虚拟网卡的IP地址,“端口”选择102,点击“连接”按钮:

弹出密码对话框,因为我们在系统块中并没有设置密码,直接点击“确认”:

若设备树中“我自己”显示“已连接”,表示通道已经建立:

打开软件STEP 7-MicroWIN SMART,编写一个简单的梯形图程序:

“主要”树中双击通讯,在“通讯参数”对话框中,选择通讯接口“TAP-Windows Adapter V9.TCPIP.1”,点击“添加CPU”按钮,手动添加IP地址“192.168.50.1”,点击“确定”按钮:

点击工具栏中的“下载”按钮,将程序块远程下载到开发板,再点击“程序状态”按钮,进入梯形图监控模式:

设备作为KQDNET路由

如果在开发板DK60-STM32F412RE的本地网络中,有一台S7-200 SMART,IP地址为192.168.1.140,那么让开发板做为KQDNET路由,便可实现S7-200 SMART的远程访问。

断开连接,设备树中点击“开发板1”,点击主工具栏中的“添加设备”按钮,弹出对话框中设备名称输入“我的邻居”,协议选择“PPI”,端口选择“2”,点击确定:

注意这里的端口编号不是开发板PPI通讯端口的编号,必须在软件KQD Designer中查看,模块Kqdnet的子节点PPIRouterPort:

由图中可知,开启了Router转发功能的PPI通讯端口有3个,分别是:

  • 端口0:Rs485_USART2。
  • 端口1:Rs485_USART3。
  • 端口2:Tcp_W5500A。
我们是用TCP/IP来连接S7-200 SMART,因此这里端口号必须选择2。

设备树中点击“我的邻居”,本地电脑框中,“监听的IP地址”选择虚拟网卡的IP地址,“端口”选择102,点击“连接”按钮:

弹出密码对话框,因为我们在系统块中并没有设置密码,直接点击“确认”:

打开软件STEP 7-MicroWIN SMART,编写一个简单的梯形图程序:

“主要”树中双击通讯,在“通讯参数”对话框中,选择通讯接口“TAP-Windows Adapter V9.TCPIP.1”,点击“添加CPU”按钮,手动添加IP地址“192.168.50.1”,点击“确定”按钮:

点击工具栏中的“下载”按钮,将程序块远程下载到开发板,再点击“程序状态”按钮,进入梯形图监控模式:

到这里,我们通过开发板实现了对S7-200 SMART的远程程序升级与监控: