远程PLC监控和调试系统及方法与流程

文档序号:12361104阅读:1146来源:国知局
远程PLC监控和调试系统及方法与流程

本发明涉及PLC监控和调试领域,更具体地说,涉及一种远程PLC监控和调试系统及方法。



背景技术:

可编程逻辑控制器(Programmable Logic Controller,PLC)是一种可编程的存储器,用于其内部存储程序,执行逻辑运算、顺序控制、定时、计数与算术操作等面向用户的指令,并通过数字或模拟式输入/输出控制各种类型的机械或生产过程。

目前工业应用环境中一些可编程控制器11通过数据传输模块(Data Transfer Unit,DTU)12的设备连接到网络上,如图1所示,用户可以在远端的设备(即远程终端13)查看PLC运行数据或者远程调试PLC。

然而,这种通过DTU 12来远程查看数据或调试的方式存在很多问题。例如DTU 12仅提供了一个远程虚拟串口的通信模型,一些基于串口的PLC调试软件在使用这种远程虚拟串口连接远程终端13时,采用的通信协议和本地调试时采用的协议是一样的:通常是发送一个命令,等待响应,再发送下一个命令,等待响应这样一个循环过程。

上述通信流程对于本地真实串口问题不大,但是对于远程虚拟串口,由于网络通信延迟的存在,部分指令会出现超时重发;并且协议中命令和响应本身字节数比较短,用网络来传输这些命令和响应时需要增加头部信息,且这些头部信息通常比命令和响应本身还长,通信效率不高。上述两个因素将导致单位时间内交互的数据比较少,使用者最直接的感受就是进行远程调试时超时严重,体验非常差。



技术实现要素:

本发明要解决的技术问题在于,针对上述DTU远程查看数据或调试时响应时间长、通信效率不高的问题,提供一种新的远程PLC监控和调试系统及方法。

本发明解决上述技术问题的技术方案是,提供一种远程PLC监控或调试系统,包括连接到PLC的数据传输模块且该数据传输模块通过网络连接到远程终端,所述远程终端包括地址分析单元、第一收发单元、数据缓存单元,所述数据传输模块包括数据读取单元和第二收发单元;其中:所述地址分析单元,用于获得之前预定时间内的所有远程指令需访问的PLC数据单元地址,所述获取的所有PLC数据单元地址通过第一收发单元发送到数据传输模块;所述数据读取单元,用于根据第二收发单元从远程终端接收的PLC数据单元地址读取对应数据,所述数据由第二收发单元发送到远程终端;所述数据缓存单元,用于将第一收发单元接收的来自数据传输模块的数据与PLC数据单元地址对应缓存,并在下一远程指令需访问的PLC数据单元地址包含于数据缓存单元中时直接使用该数据缓存单元内的对应数据进行响应。

在本发明所述的远程PLC监控或调试系统中,所述地址分析单元创建包含有所有远程指令需访问的PLC数据单元地址的结构化表格,所述结构化表格通过第一收发单元发送到数据传输模块。

在本发明所述的远程PLC监控或调试系统中,所述数据读取单元周期性地根据结构化数据表格中的PLC数据单元地址读取对应数据,所述第二收发单元将所有数据组合成一个数据包发送到远程终端。

在本发明所述的远程PLC监控或调试系统中,所述地址分析单元在下一远程指令需访问的PLC数据单元地址未包含在缓存中时,重新获得预定时间内的所有远程指令需访问的PLC数据单元地址,该重新获得的PLC数据单元地址通过所述第一收发单元和第二收发单元发送到数据传输模块;所述数据读取单元根据重新获得的PLC数据单元地址读取对应的数据。

在本发明所述的远程PLC监控或调试系统中,所述远程指令为监控指令或调试指令。

本发明还提供一种远程PLC监控或调试方法,包括以下步骤:

(a)远程终端获得之前预定时间内的所有远程指令需访问的PLC数据单元地址,并将获取的所有PLC数据单元地址发送到PLC端;

(b)PLC端的数据传输模块根据来自远程终端的PLC数据单元地址读取对应数据,并将所述数据发送到远程终端;

(c)远程终端将接收的数据与PLC数据单元地址对应缓存,并在下一远程指令需访问的PLC数据单元地址包含于缓存中时直接从缓存读取对应的数据。

在本发明所述的远程PLC监控或调试方法中,所述步骤(a)中包括:创建包含有所有远程指令需访问的PLC数据单元地址的结构化表格,并将所述结构化表格发送到PLC端。

在本发明所述的远程PLC监控或调试方法中,所述步骤(b)包括:所述PLC端的数据传输模块周期性地根据结构化数据表格中的PLC数据单元地址读取对应数据,并将所有数据组合成一个数据包发送到远程终端。

在本发明所述的远程PLC监控或调试方法中,所述步骤(c)包括:在下一远程指令需访问的PLC数据单元地址未包含在缓存中时,返回步骤(a)。

在本发明所述的远程PLC监控或调试方法中,所述远程指令为监控指令或调试指令。

本发明的远程PLC监控或调试系统和方法,通过分析获得之前预定时间内的所有远程指令需访问的PLC数据单元地址,并将上述PLC数据单元地址所对应的数据缓存到远程终端,从而远程终端在下一远程指令需访问的PLC数据单元地址位于缓存时可直接从缓存读取数据,可大大提高远程指令的响应时间。本发明还通过将上述所有PLC数据单元地址对应的数据组合长一个数据包发送到远程终端,大大提高了数据发送的效率。

附图说明

图1是现有远程PLC系统的结构示意图

图2是本发明远程PLC监控或调试系统实施例的示意图。

图3是本发明远程PLC监控或调试方法实施例的流程示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

如图2所示,是本发明一种远程PLC监控或调试系统实施例的示意图,该系统可应用于使用数据传输模块(DTU)实现远程数据传输的PLC系统中。本实施例中的远程PLC监控或调试系统包括数据传输模块40以及远程终端20,且数据传输模块40通过串口连接到PLC 50,并通过网络(通信网络和/或互联网)连接到远程终端20,从而将从PLC 50读取的状态数据或调试数据传输到远程终端20,实现远程监控或调试。

上述远程终端20可以为运行有相应软件的个人电脑(PC),并包括地址分析单元21、第一收发单元22、数据缓存单元23;数据传输模块40采用运行有相应软件的DTU,并包括数据读取单元41和第二收发单元42,其中上述第一收发单元22和第二收发单元42通过TCP/UDP/IP协议等实现远程终端20与数据传输模块40之间的通讯。上述地址分析单元21、第一收发单元22、数据缓存单元23、数据读取单元41和第二收发单元42可结合相应软件构成。

地址分析单元21用于获得当前时刻之前的预定时间(该预定时间可根据需要设定,例如1分钟或30秒等)内的所有远程指令(例如远程监控指令或远程调试指令等)需访问的PLC数据单元地址,上述获取的所有PLC数据单元地址通过第一收发单元22发送到数据传输模块。该地址分析单元21可在远程终端20(即相应软件)运行达到预定时间时执行PLC数据单元地址获取操作,也可由其他指令触发执行PLC数据单元地址获取操作。

特别地,该第一收发单元22可将上述获取的所有PLC数据单元地址组合到一个数据包中发送到数据传输模块40。例如可通过地址分析单元21先将上述获取的所有PLC数据单元地址记录到一个缓存中,并结构化为一个表格,并由第一收发单元22将上述表格打包后发送到数据传输模块40。

数据读取单元41用于根据第二收发单元42从远程终端20接收的PLC数据单元地址通过串口从PLC 50读取对应数据,该读取的数据由第二收发单元42发送到远程终端20。特别地,该数据读取单元41周期性地从PLC 50读取上述PLC数据单元地址对应的数据,并由第二收发单元42主动将上述数据组合成为一个数据包周期性地发送到远程终端20。

数据缓存单元23用于将第一收发单元22接收的来自数据传输模块40的数据包内的PLC数据与PLC数据单元地址对应缓存。在下一远程指令需访问的PLC数据单元地址包含于缓存中时,数据缓存单元23直接使用缓存的对应数据响应该远程指令。

本发明的远程PLC监控或调试系统,远程终端20在需要访问PLC上的数据单元时,优先从数据缓存单元23获取对应数据(如果数据缓存单元23中存在期望的数据则直接响应),解决了远程监控或调试中的超时问题。另外通过将多个PLC数据单元地址及数据组合发送,大大减少了命令和响应的交互次数,通信过程的数据包不会再出现包头大、数据内容小的情况,通信效率大大提高,用户体验明显提升。

此外,如果下一指令所需访问的PLC数据单元地址并不在缓存中,则数据缓存单元23触发地址分析单元21重新获取预定时间内的远程指令所需访问的PLC数据单元地址,并由第一收发单元22发送到数据传输模块40,数据读取模块41根据新的PLC数据单元地址进行数据读取。

如图3所示,是本发明远程PLC监控或调试方法实施例的流程示意图,该方法具体包括以下步骤:

步骤S31:远程终端分析获得当前时刻之前的预定时间内的所有远程指令(例如远程监控指令或调试指令等)需访问的PLC数据单元地址,并将获取的所有PLC数据单元地址发送到PLC端。上述远程终端可以为运行有相应软件的个人电脑(PC),而PLC端则具有数据传输模块(DTU),且该数据传输模块通过串口连接到PLC,并通过网络(通信网络和/或互联网)连接到远程终端。

该步骤可在远程终端(即相应软件)运行达到预定时间时执行PLC数据单元地址获取操作。具体地,该步骤中,可将上述获取的所有PLC数据单元地址组合到一个数据包中发送到数据传输模块,例如可先将上述获取的所有PLC数据单元地址记录到一个缓存中,并结构化为一个表格,然后将上述表格打包后发送到数据传输模块。

步骤S32:PLC端的数据传输模块根据来自远程终端的PLC数据单元地址,通过串口从PLC读取对应数据,并将读取的数据发送到远程终端。

特别地,该步骤周期性地执行,即数据传输模块周期性地从PLC读取上述PLC数据单元地址对应的数据,并主动将上述数据组合成为一个数据包周期性地发送到远程终端。

步骤S33:远程终端将接收的数据包内的数据与PLC数据单元地址对应缓存,并在下一远程指令需访问的PLC数据单元地址包含于缓存中时直接从缓存读取对应的数据。

此外,如果下一指令所需访问的PLC数据单元地址并不在缓存中,则重新执行步骤S31,即远程终端重新分析获取预定时间内的远程指令所需访问的PLC数据单元地址,并将获取的PLC数据单元地址发送到数据传输模块,数据读取模块根据新的PLC数据单元地址进行数据读取。

以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1