CN108717285A - 通过内置网页编程的可编程逻辑控制器 - Google Patents

通过内置网页编程的可编程逻辑控制器 Download PDF

Info

Publication number
CN108717285A
CN108717285A CN201810334057.3A CN201810334057A CN108717285A CN 108717285 A CN108717285 A CN 108717285A CN 201810334057 A CN201810334057 A CN 201810334057A CN 108717285 A CN108717285 A CN 108717285A
Authority
CN
China
Prior art keywords
tcp
module
program
parameter
programmable controller
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201810334057.3A
Other languages
English (en)
Inventor
张著岳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Individual
Original Assignee
Individual
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Priority to CN201810334057.3A priority Critical patent/CN108717285A/zh
Publication of CN108717285A publication Critical patent/CN108717285A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
    • G05B19/054Input/output
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/10Plc systems
    • G05B2219/11Plc I-O input output
    • G05B2219/1105I-O

Abstract

通过内置网页编程的可编程逻辑控制器,包括主控模块、网络通信模块、输入输出硬件模块;将对可编程控制器进行编程、设置、查看状态所需要的网页存入可编程控制器的存储器中,通过所述网络通信模块创建TCP服务端以及TCP客户端,侦听、接收、响应来自于浏览器或者远程云服务器的连接以及数据读写请求;从而为用户提供一种无需安装软件,无需数据线,即可以远程又可以本地访问,通过内置网页编程的可编程逻辑控制器。

Description

通过内置网页编程的可编程逻辑控制器
技术领域
本发明涉及自动控制技术领域,具体是通过内置网页编程的可编程逻辑控制器。
背景技术
可编程逻辑控制器(PLC)(以下简称可编程控制器或者控制器)是一种广泛应用于工业领域的电子产品,其提供接口以及存储空间,由用户编写逻辑判断,算术运算,定时,延时等程序指令;其检测外界输入的开关量,模拟量等信号,按照用户编写的程序对信号进行处理,并对输出设备进行控制。
当前,对可编程控制器进行编程通常需要安装专用的编程软件,操作步骤为:在电脑上下载安装专用软件,采用梯形图、指令表、功能模块图等编写程序,采用专用的数据线连接至可编程控制器,将编写好的程序下载至可编程控制器。
除此之外,市面上出现了一种被称为“PLC一体机”的可编程控制器,该控制器不但集成了处理器、输入、输出硬件部件,还采用机械按键、显示器件等向用户提供人机交互的接口;通过按键,用户可以输入程序、设置参数以及选择查看运行状态;通过显示部件,控制器可以向用户显示控制程序,实时运行状态等;借助于这样简单的人机交互接口,用户无需安装专用的软件,而是直接在控制器上编写程序、设置参数,从而将对控制器编程设置的工作大大简化,省去了大量繁琐的专业程度要求高的工作。
传统的可编程控制器的编程需要在电脑上进行,需要有专用的数据线下载;专用软件的安装需要有计算机相关的知识技能。
随着技术的进步和生产力水平的发展,可编程控制器逐渐从高不可攀的神坛上走下来,飞去了寻常百姓家;普通的用户也逐渐购买简易的可编程控制器实现诸如定时开启灯光,定时开启水泵、水阀对水果蔬菜等自动浇灌,乃至于机械设备的自动化控制,相较于可编程控制器的专业用户,普通用户对价格敏感,要求编程简单易于掌握,难以接受专业软件以及专业辅助设备的使用,且一般要求实现的功能也是非常简单。
随着智能手机的普及,电脑的普及程度逐渐下降,除了办公工作所需,普通家庭配备电脑的可能性降低;仅仅是为了使用可编程控制器实现日常简单的自动控制,用户需要找到已经淡出生活的电脑,耗费大量的心思安装、熟悉专用软件;在平常的使用时,如需升级可编程控制器软件或者修改参数,用户需要在结构复杂的设备上,抽丝剥茧般找到可编程控制器,接上数据线或者操作可编程控制器上的按键对控制器进行升级、设置,有时甚至不得不将可编程控制器拆卸下来,有时会因为没有携带电脑、软件打不开、找不到数据线等问题平添无尽的困扰。
对于可以脱离电脑,直接在设备上编程、设置的“PLC一体机”,由于受制于用户对可编程控制器价格的接受程度,其作为人机界面的输入按键以及显示屏的性能非常有限,比如采用多个机械按键实现不同的输入功能,采用分辨率以及尺寸都非常有限的点阵式单色液晶显示屏进行内容的显示,主要有以下缺点:
1)没有数字、文本的直接输入方式,用户需要反复按压按键对数字做加减操作实现数值输入,一个简单的数字输入可能需要几十次的按压;
2)显示屏只能显示寥寥几个文字,用户难以通过一屏的界面了解可编程控制器运行状态以及所编写程序的全貌;
3)显示的内容色彩单调,形式呆板,更难以由用户根据自身喜好定制显示界面;
4)为了适应一些复杂逻辑的自动控制,可编程控制器需要提供一些经过的程序指令,比如条件操作,当满足某个条件时, 可编程控制器需要执行诸如输出、计时器控制、程序跳转、变量计算等操作, 而这些复杂指令的输入与显示往往对用户极不友好;
5)需要使用专用软件将程序从可编程控制器上导出,或者将程序导入可编程控制器,有些可编程控制器甚至没有数据通信接口而无法导入或导出程序,用户需要周而复始在不同可编程控制器上按压按键逐条输入程序。
而且,随着网络技术的发展,用户对远程控制、手机控制的需求不断增强,而传统的控制器要么无法实现TCP/IP通信,要么需要购买昂贵的网络通信模块。
一般而言,普通用户由于通常欠缺PLC相关知识, 很难根据其功能需求独自完成天书般的程序的设计、编写、调试、维护等工作,PLC厂家登门支持无疑额外增加相较于可编程控制器自身价格而言不啻于巨额的实施成本。而仅仅通过电话,网络等方式远程沟通,而无法远程获知控制器状态,则难以描述清楚,导致沟通不畅,效率低下。
发明内容
为了解决这些问题,本发明提供了通过内置网页编程的可编程控制器。所述可编程控制器将常用的逻辑控制抽象成输出、延时、定时、跳转、条件判断等几条基本程序指令,提供基于网页的人机接口供用户组织、设置这些程序指令,满足其控制逻辑的要求;所述可编程控制器支持TCP/IP协议栈,其将用户编程、设置程序、查看状态的接口所需的包含html、javascript脚本等内容的网页文件保存在存储器,创建TCP服务器,侦听来自于用户移动终端、电脑等浏览器的HTTP访问请求,解析请求,根据请求的地址以及携带的参数要么从存储器中读取网页文件用HTTP协议封包返回给浏览器;要么将可编程控制器保存的程序、参数以及当前的运行状态用HTTP协议封包返回给浏览器;要么将用户通过浏览器提交的程序以及参数保存在可编程控制器;所述可编程控制器同时创建TCP/web socket的客户端,连接至远程云服务器的TCP/web socket服务器,建立TCP/web socket长连接,基于该长连接,接收由远程云服务器转发的来自远程用户的有用自定义协议的TCP命令,解析命令,根据不同命令返回程序、参数、当前运行状态,或者将通过请求提交的程序以及参数保存至存储器,其将返回的数据采用HTTP协议或自定义协议封包由远程云服务器转发返回给请求方。
本发明要解决的技术问题是通过以下技术方案实现的:
通过内置网页编程的可编程控制器,其特征在于,所述可编程控制器包括主控模块、网络通信模块、输入输出硬件模块:
所述主控模块作为可编程控制器的控制中心,其通过数字通信接口或者内存共享方式与所述网络通主模块相连,接收来自所述网络通信模块的消息,响应消息并应答;同时,负责程序的存取,解析以及执行;按照程序指令对可编程控制器的输入、输出等硬元件进行判断、控制,对变量、计时器、延时器等软元件进行运算、判断、控制;
所述主控制模块包括程序存储单元、程序解析以及运行单元、数据通信单元以及输入输出控制单元:
所述程序存取单元,用于操作所述主控模块的存储器,根据从其他单元获取的包括参数或者程序的通知,将其中的参数或者程序写入存储器,或者,根据从请求方接受到的通知,从存储器读取控制器的参数或者程序返回给请求方使用;
所述程序解析以及运行单元,用于从所述程序存取单元获取的参数以及程序解析成程序指令,通过所述输入输出控制单元检测所述输入输出硬件模块的包括开关量输入、模拟量输入等,根据不同指令的定义,执行条件判断,变量运算,计时器控制,程序组控制等操作,并按照执行结果,通过所述输入输出控制单元操作所述输入输出硬件模块;
所述数据通信单元,用于与所述网络通信模块建立数字通信通道,从所述网络通信模块接受读写命令,解析接收到的命令,根据解析结果通知所述程序存储单元执行读写操作,或者向所述网络通信模块上报可编程控制器的状态;
所述输入输出控制单元用于通过处理器的端口与所述输入输出模块相连,实现开关量的高、低电平检测,模块量的A/D转换检测,UART通信口的数据收发,以及继电器、三极管或者功率MOS管的控制;
所述网络通信模块支持TCP/IP协议栈,保存了用于对可编程控制器编程、设置的人机接口所需要的网页文件,其创建TCP服务器,侦听、接收来自于浏览器的HTTP请求,向浏览器提供网页文件,或者与所述主控模块通过数字通信接口读写程序、系统参数以及控制器的运行状态,并返回相应消息给浏览器;其创建TCP客户端,与远程云服务器的TCP服务器建立TCP长连接,侦听、接收来自于远程云服务器的TCP消息,从所述主控模块读写程序、系统参数以及控制器的运行状态,并返回相应消息给远程云服务器;
所述网络通信模块包括TCP服务器单元、TCP客户端单元、通信转发单元、网页存储单元、网络管理单元;
所述TCP服务端单元,其创建TCP服务端,监听来自用户浏览器的HTTP请求,按HTTP协议解析接收到的请求,并根据请求的URL地址以及所携带的参数进行判断;根据判断结果,要么从所述网页存储单元读取对应的网页文件,按照HTTP协议将其封装成应答报文返回给浏览器;要么将HTTP请求转换成与所述主控模块之间的自定义通信命令通过所述通信转发单元发送给所述主控模块,等待来自所述主控模块由所述通信转发单元采用自定义协议的应答,并按照HTTP协议封装成报文,返回给浏览器;要么修改所述网络通信模块的网络参数,通过所述网页存储单元将参数写入存储器,并将参数修改的结果按照HTTP封装成报文,返回给浏览器;
所述TCP客户端单元,其创建TCP客户端,连接至远程云服务器的TCP服务端,并维持TCP长连接,其接受来自TCP服务端的自定义协议的TCP消息,将消息转化以后经过所述通信转发单元转发给所述主控模块,之后等待由所述通信转发模块所转发的来自于所述主控模块的应答命令,转换成自定义协议的TCP消息返回给远程云服务器的TCP服务端;或者,修改所述网络通信模块的网络参数,通过所述网页存储单元将参数写入存储器,并将参数修改的结果按自定义协议的TCP消息返回给远程云服务器的TCP服务端;
所述网页存储单元,用于存储包含html文本以及javascript脚本的网页文件,将这些网页文件下载至用户浏览器运行,可以对可编程控制器进行编程、设置、查看状态;
所述通信转发单元,用于和所述主控模块通过数据通信接口(如UART等)实现数据交互;
所述网络管理单元,用于TCP/IP网络参数的管理,包括网络的初始化、状态管理、运行维护等;
所述输入输出硬件模块为对接入可编程控制器的信号做调理的硬件电路,以及将可编程控制器的处理器输出的信号做处理,控制继电器、三极管或者功率MOS最终作为可编程控制器的输出实现负载控制的硬件电路。
更进一步地,所述网络通信模块为可编程控制器主处理器中的软件功能模块以及独立于主处理器、内置了TCP/IP协议栈的GPRS模块,主处理器通过串口用AT指令控制GPRS创建TCP客户端,基于2G/3G/4G/5G等移动网络与远程与服务器通过建立TCP长连接。
更进一步地,所述网络通信模块为主处理器中的软件模块以及独立于主MCU的PHY驱动电路,软件模块支持TCP/IP协议栈,其通过控制MCU的MAC模块驱动外置的PHY驱动电路,实现TCP/IP数据收发,通过MCU内部的协议栈创建TCP服务端和TCP客户端,实现所述的TCP服务端单元以及TCP客户端单元。
更进一步地,其特征在于,所述主控模块包含显示控制单元,所述显示控制单元包括输入按键以及显示器件,可编程控制器检测按键,控制显示屏,实现简单的人机交互;同时,用户通过从所述网络通信模块下载的网页在浏览器上对所述显示控制单元的按键逻辑、显示的格式以及内容进行设置,并通过所述的网络通信模块的TCP服务端或者TCP客户端转发数据存储至所述程序存储单元;之后,所述显示控制单元根据保存的参数进行按键事件的处理以及显示屏的显示。
更进一步地,所述网络通信模块提供websocket服务端,浏览器通从所述TCP服务端单元下载网页文件之后,运行在浏览器的javascript脚本程序创建websocket客户端并连接至所述网络通信模块所提供的websocket服务端,从而实现浏览器和可编程控制器之间的点对点实时通信。
由此,本发明将对可编程控制器进行编程、设置、查看状态所需要的网页存入可编程控制器的存储器中,通过所述网络通信模块创建TCP服务端以及TCP客户端,侦听、接收、响应来自于浏览器或者远程云服务器的连接以及数据读写请求;从而为用户提供一种无需安装软件,无需数据线,即可以远程又可以本地访问的,通过内置网页编程的可编程逻辑控制器,具有以下特点:
1) 不需要安装软件,直接通过手机、平板或者电脑连接可编程控制器,打开内置的网页就可以编程、设置或者查看状态;
2) 不需要有线连接或者触碰到设备,用户可以通过无线WiFi连接可编程控制器可以进行编程、设置或者查看状态;
3) 可编程控制器可以连接至远程云服务器,用户只要能连上internet就可以任意时间、任意地点通过微信APP或者浏览器打开远程云服务器所提供的网页对远程的可编程控制器进行编程、设置或者查看状态;
4) 通过云服务器,技术人员无需安装任何软件即可以远程协助用户编写、调试、分析控制器的程序;
5) 无需安装软件,用户即可下载可编程控制器的程序至用户的手机、平板或者电脑,或者将下载至用户的手机、平板或者电脑的程序上传至可编程控制器。
附图说明
为了更好地描述本发明的实施例,绘制了以下附图。应当理解的是,附图仅是以示例的方式示出了本发明的优选实施例,而不应将附图解释为对本发明的限制。
图1为本发明提供的一实施例的可编程控制器的系统框图。
图2 为本发明提供的一实施例的可编程控制器的用户端工作流程图。
图3为本发明提供的一实施例的可编程控制器的所述网络通信模块的工作流程图。
图4为本发明提供的一实施例的可编程控制器的“运行状态”网页的示意图1。
图5为本发明提供的一实施例的可编程控制器的“运行状态”网页的示意图2。
图6为本发明提供的一实施例的可编程控制器的“运行状态”网页的示意图3。
图7为本发明提供的一实施例的可编程控制器的“程序设置”网页的示意图。
图8为本发明提供的一实施例的可编程控制器的“系统设置”网页的示意图1。
图9为本发明提供的一实施例的可编程控制器的“系统设置”网页的示意图2。
具体实施方式
下面结合附图及具体实施方式对本发明做进一步详细的说明。
本发明提供了一种通过内置网页编程的可编程控制器,通过它,用户无需安装软件、也无需数据线连接或者触碰到设备,只需要将手机、平板或者电脑通过无线连接至可编程控制器,通过微信APP或者浏览器从可编程控制器或者远程云服务器下载编程网页,通过HTTP或者自定义协义与可编程控制器通信,实现对可编程控制器的编程、设置以及查看状态。
如图1可编程控制器的系统框图所示,所述主控模块101为采用STM32F051X系列或者STM32F103X系列MCU实现的可编程控制器的控制中心;基于MCU编写相应的软件功能模块实现所述程序存储单元102、所述数据通信单元103、所述程序解析以及运行单元104、所述输入输出控制单元105;MCU的内部Flash除了存储控制器本身程序之外,剩余的flash空间被用于存储用户编写的可编程控制器程序以及设置的参数;而程序存储单元102用于和MCU的内部Flash对接,实现Flash的读写、搬移、备份以及有效性校验,并进一步封装接口实现用户程序和设置参数的读写;MCU程序从其内部Flash读取设置参数以及程序,并解析出操作码和操作数,根据操作码和操作数执行操作;同时接收来自于数字通信接口的消息,根据不同的消息从其内部Flash读取程序以及参数,向内部Flash写入程序或者参数,或者从其内存中读取内部变量值、计时值、定时器、程序运行状态等作为可编程控制器的状态,并产生相应的应答返回给所述网络通信模块108。
所述网络通信模块108为WiFi模块,该WiFi模块内置32位处理器的主处理器芯片,支持WiFi 协议栈,支持RTOS操作系统;其内置WiFi无线信号的收发电路,同时支持SoftAP以及Station模式;同时,该WiFi模块带有Flash存储器,可用于存储WiFi主芯片的程序以及用户数据;
其提供接口并保留运算能力,让用户基于WiFi主处理器芯片进行二次开发;
将所有网页文件按照一定规则整理成二进制数据作为用户数据写入其自带的Flash存储器,在WiFi主处理器芯片编写程序,对WiFi网络参数以及WiFi网络本身进行初始化、状态管理、运行维护等,实现所述的网络管理单元113;提供接口对存储在Flash存储器的网页文件以及网络设置进行读写操作,实现所述的网页存储单元109;
根据网络参数,使能WiFi AP模式,如果设置了无线路由器的SSID以及密码,则同时连接到所设置的无线路由器;
在该WiFi模块上移植LWIP协议栈,通过LWIP创建TCP服务端,侦听来自于WiFi AP或者WiFi station的TCP客户端的连接和数据,实现所述的TCP服务端单元110;
通过LWIP创建TCP客户端或者Websocket客户端,连接至远程云服务器115的TCP服务端或者Websocket服务端,并定时上报心跳包维持长连接,侦听来自于远程服务器115的TCP消息,解析、响应并应答消息,实现所述的TCP客户端单元111。
如图2所示,通过以下的步骤实现通过网页对可编程控制器的编写程序、查看状态、设置参数:
1)在步骤201, 用户的移动终端(手机或者平板电脑)或者电脑114作为WiFi station接入所述网络通信模块108所提供的AP,或者连接所述网络通信模块108所连接的无线路由器;
2)在步骤202,用户打开浏览器,如果连接了所述网络通信模块108的AP模式,则输入其AP模式的网址(比如http://192.168.4.1),如果和所述网络通信模块108连接同一个无线路由器,则输入所述网络通信模块108的station模式的网址(比如http://192.168.0.101);
3)在步骤203,浏览器向所述网络通信模块108的所述TCP服务端单元110发起TCP连接,并向所述网络通信模块108请求下载首页;
4)在步骤204,所述网络通信模块108的所述TCP服务端单元110收到请求之后,根据HTTP协议解析该请求,从所述网页存储单元读取网页首页文件,并返回浏览器,网页首页文件包含用html语言描述的编程、设置网页的可视化框架,同时还包含用于控制其他文件下载的javascript 脚本;
5)在步骤205,浏览器运行网页首页文件中的javascript脚本,逐一下载其他文件,所述其它文件主要为javascript脚本,主要包括用于与WiFi模块实时通信采用AJAX技术的脚本ajax.js,解析控制器程序并采用HTML的input等element显示在网页供用户查看的脚本key.js,动态控制浏览器的DOM供用户方便编辑程序的脚本rts.js,解析控制器程序的脚本decode.js,管理控制器程序,并向用户提供对控制器程序进行增、删、改、查等操作的脚本rt.js等;
6)在步骤206、207、208, 待首页和javascript脚本程序文件下载完毕之后,javascript脚本程序自动或者根据用户的操作通过下述定义的url以及携带的参数与控制器进行数据交互;在网页的“运行状态”界面,则定时通过AJAX从所述主控模块101查询可编程控制器的状态并显示;当用户通过网页上的按键切换至“程序设置”界面时,用户可以在网页上编写可编程控制器的程序并通过AJAX向所述主控模块101写入编写的程序;当用户通过网页上的按键切换至“系统设置”界面时,用户可以在网页上设置可编程控制器的参数并通过AJAX向可编程控制器写入参数;
另外,浏览器除了通过AJAX与可编程控制器交换数据,也可以通过websocket与所述网络通信模块的web socket服务端建立连接并交换数据;
用户的移动终端(手机或者平板电脑)或者电脑116也可以在浏览器上打开云服务器115上保存的和所述网络通信模块108所存储的类似的网页文件,之后浏览器通过websocket与远程云服务器115上的websocket服务端,通过云服务器115的转发,与远程的可编程控制器进行基于自定义协议的TCP或者websocket的通信,读写程序、设置参数以及获取运行状态,实现对可编程控制器的远程控制。
可编程控制器主要按照如下的url以及参数与运行在用户浏览器上的javascript脚本进行数据交换;
1)获取可编程控制器的程序
网页文件:
ajax.php
参数:
a=get&t=rt&rtid={rtid}
参数说明:
参数a表示数据操作类型,“get”表示从控制器读读取数据;
参数t表示数据类型,“rt”表示读取的数据为控制器程序,参数rtid表示当前要读取的程序组编号,{rtid}可取1-24之间的数值,所述可编程控制器支持24个程序组,浏览器需要从所述控制器逐一下载程序组,因此通过rtid指定要下载的程序组的编号;
返回的数据:
控制器返回json格式的数据,其内容为通过rtid所指定的程序组的控制器程序;
2)保存可编程控制器的程序
网页文件:
ajax.php
参数:
a=save&t=rt&rtid={rtid}&ins={ins}
参数说明:
参数a表示数据操作类型,“save”表示向控制器写入数据;
参数t表示数据类型,“rt”表示写入的数据为控制器程序,参数rtid表示当前要写入的程序组编号,其定义和1)一致,参数ins表示程序组的所有程序指令,程序指令用二进制数据表示,在与浏览器对接时将二进制数据转换为十六进制的Ascii编码;
返回的数据:
控制器返回json格式的数据,其内容为写入成功或失败的标志
3)获取实时运行状态
网页文件:
ajax.php
参数:
a=get&t=all
参数说明:
参数a表示数据操作类型,“get”表示从控制器读取数据;
参数t表示数据类型,“all”表示读取的数据为实时运行状态;
返回的数据:
控制器返回json格式的数据,其内容包括开关量输入状态、输出状态、模拟量输入的采样数值、定时器的计时时间、延时器的倒计时时间、所有内部变量的数值、程序组运行状态等;
4)读取系统设置参数
网页文件:
ajax.php
参数:
a=get&t=sys
参数说明:
参数a表示数据操作类型,“get”表示从控制器读取数据;
参数t表示数据类型,“sys”表示读取的数据为系统设置参数
返回的数据:
控制器返回json格式的数据,其内容包括WiFi AP的SSID以及密码、WiFi Station所接入的WiFi AP的SSID以及密码、扫描到的所有可连接的WiFi AP列表等,远程云服务器的IP地址以及端口、设备编号、控制器RTC时钟等;
5)写入系统参数
网页文件:
ajax.php
参数:
a=save&t=sys&ssid={ssid}&pwd={pwd}&sta_ssid={sta_ssid}&sta_pwd={sta_pwd}
参数说明:
参数a表示数据操作类型,“save”表示向控制器写入系统参数;
参数t表示数据类型,“sys”表示写入的数据为系统参数;参数ssid表示WiFi AP的SSID;参数pwd表示WiFi AP的密码;
返回的数据:
控制器返回json格式的数据,其内容为写入成功或失败的标志。
如图3,当所述网络通信模块108收到来自于浏览器的http请求时,根据以下逻辑判断执行下一步操作:
1.在步骤301,判断http请求的url的文件,如果未指定文件名,或者文件名为index.htm,表明需要获取首页文件,则在步骤302从所述的网页文件存储单元中根据首页文件在其存储器中的存储位置以及文件大小读取相应的文本数据,并按http协议封包返回给浏览器;
2.如果http请求的url的文件为.js后缀的文件,则在步骤303根据与文件名对应的文件在存储器中的存储位置以及文件大小读取相应的文本数据,并按http协议封包返回给浏览器;
3.如果http请求的 url的文件为“ajax.php”,则说明浏览器需要与控制器交换数据,则在步骤304进一步判断参数t的取值,如果为“sys”,表示需要交换的数据为系统参数,如果参数a取值为get,则将网络相关的系统参数加入应答消息中,如果参数a取值为save,则网络相关的系统参数值存入WiFi模拟的存储器中;与此同时,WiFi模块将该URL转换为采用二进制格式的用于所述主控模块101与TCP 通信模块之间的自定义协议,并发送给主控模块,等待所述主控模块101的应答,将其转换返回给请求方。
可编程逻辑控制器的内置网页在浏览器上按三个互斥的div层显示控制器的信息,分别为运行状态,程序设置和系统设置,用户可以点击不同的按键,切换显示不同的界面;图4、5、6为可编程逻辑控制器内置网页的运行状态显示界面, 包括:
401“+”按键,用于放大网页;当通过手机打开编程网页时,由于手机屏幕分辨率比较小,导致编程网页的文字偏小,不易阅读;通过点击该按键放大网页以及文字,增加易读性;
402 “-“按键,用于缩小网页,有些手机打开编程网页,由于屏幕宽度的限制,设置网页的显示会错位;比如本该同一行显示的内容错位显示,通过点击该按键缩小网页以及字本体,解决显示的错误位置,增加易读性;
403 “断开连接” 或者“重新连接”按键,如果编程网页与控制器断开了连接,则可以通过点击该按键与控制器重新建立连接;如果编程网页与控制器建立了连接,则可以点击该按键与控制器断开连接;
在实际编写程序时,有可能会打开多个编程网页,多个编程网页同时编程,会导致编程网页与控制器之间的通信不稳定,在这种情况下,就可以保留一个编程网页的连接,而在其它编程网页的界面上点击403“断开连接”按键,主动断开其它编程网页与控制器的连接;
404“控制器连接状态”的显示栏,该显示栏会实时更新编程网页与控制器的连接状态,如果没有与控制器建立连接,则显示“断开状态”,如果与控制器建立了连接,则显示“连接状态”,文字“接收于x秒前”,表示最后收到控制器的数据的时间;在“断开状态”,时间会持续往上加,在“连接状态”,该时间会因为重新收到控制器的数据而不断重新从0开始计时;在极异常情况下,在“连接状态”时,最后收到数据的计时如果也不断往上加,说明因为网络的原因,控制器断开了与网页的连接;此时,比较好的做法是,重新刷新下载编程网页;
405“运行状态”按键,点击该按键可以将编程网页切换到“运行状态”的显示界面;编程网页共有“运行状态”、“程序设置”,“系统设置”三个显示界面;其中“运行状态”用于在编写好程序、控制器开始正常工作之时,查看控制器的运行状态,包括输入、输出、模拟量输入、变量、计时器、延时器以及程序指令的状态,详细界面说明请点击“运行状态”打开界面查看;
406“程序设置”按键,点击该按键可以将编程网页切换到“程序设置”的显示界面,在“程序设置”界面,用户可以进行程序组设置,程序指令的插入、修改、删除等操作;
407“系统设置”按键,点击按键可以将编程网页切换到“系统设置”按键,在“系统设置”界面,用户可以修改控制器无线信号的名称、密码,设置连接至远程服务器进行远程编程控制器的参数,设置控制器的年、月、日、时、分、秒等时钟信息,详细界面说明请点击“运行状态”打开界面查看;
408“开关输入状态”显示栏,通过16个或者8个小圆圈图案分别代表X00-X15或者X00-X07,红色表示开关闭合,黑色表示开关断开;
409“控制器输出状态”显示栏,通过16个或者8个小圆圈图案分别代表Y00-Y15或者Y00-Y07,红色表示输出闭合,黑色表示输出断开;
410“模拟量输入采样数值”显示栏
411“隐藏或者显示变量”按键,由于控制器支持的变量总数较多,占据了了编程网页的大量界面,点击按按键,可以将“变量”显示栏隐藏或者显示;
通过控制器提供的变量,用户可以实现输入计数、循环计数、输入标定、输入检测数值的暂时存储或得永久存储等功能;
412 “显示所有或者显示不等于0的变量”,点击该按键,可以隐藏或者显示值等于0的变量,从而减少“变量的数值”显示栏所占据的界面;
413 “变量的数值”显示栏,显示控制器的变量数值;
414“选择变量编号”下拉选择框;
415“输入变量数值”输入框;
416“向控制器发送命令改变变量数值”按键;
上面414、415、416用于通过编程网页改变控制器的变量数值,操作步骤为:
通过414选择要改变的变量的编号,在415输入新的数值,点击416将新的数值保存到可编程控制器的变量中;
417“定时器计时值”显示栏
控制器提供了20个定时器(T00-T19),可以分别控制每1个定时器的启动、停止、暂停和继续;一旦启动,定时器每隔100毫秒加1;
这个显示栏显示了每1个定时器的计时值,单位是100毫秒,比如T00显示为1000,表示计时值为100秒;
结合“计时器判断”,“计时器控制”两条程序指令,用户可以实现控制器的定时控制;
418“延时器的倒计时时间”显示栏
控制器的每1个程序组都提供1个延时器,结合“延时”程序指令,用户可以实现控制器的顺序延时控制,比如延时开关等;
倒计时时间的显示格式为小时:分钟:秒,支持的最大延时为9999小时;
419 “Z00-Z23″程序组下拉选择框,控制器支持24个程序组,编程网页一次只能显示1个程序组的信息,用户可以点击该下拉选择框选择Z00-Z23之间需要显示的程序组;
420 “程序组信息显示栏”,用于显示由419下拉框所指定的程序组的信息,包括
程序组编号:Z00-Z23;
程序步骤:正在运行的程序步骤/总步数(由于在“程序设置”界面,控制器的运行程序被停止,所以正在运行的程序步骤都为0);
运行:自动(上电运行)或者手动(上电不运行);
状态:停止或者运行状态,(在“程序设置”界面,程序为停止状态);
421“复位”按键,点击该按键,可以将控制器的所有用户程序组Z00-Z23重新启动;
422“程序运行模式”,
控制器的程序运行有“正常模式”,“停止模式”,“调试模式”,“测试模式”;只有在“正常模式”下,控制器才能正常运行用户的程序组;
当显示“程序设置”或者“系统设置”界面时,控制器会进入“停止模式”,停止运行用户的程序组;
“调试模式”用于调试用于的程序组、程序指令;当控制器处于“测试模式”时,控制器的所有输出会一起闪烁,用户可以通过该闪烁判断控制器的硬件是否有异常;
423 “上电运行”选择对话框,用于设置编号为419的下拉选择框所指定的程序组,
如果为“上电运行”,在控制器上电之后,就自动运行;
或者“上电不运行”,在上电之后,需要通过程序指令“调用”来控制运行;
424程序指令的步骤编号(P00-P63),对于Z00-Z23程序组,每1个程序组都可以定义64步程序指令,用P00-P63表示;
425采用中文翻译并显示每一条程序指令。
图7为可编程逻辑控制器内置网页的程序设置显示界面,包括:
502“清空”按键,点击该按键,可以将编号501的下拉选择框所指定的程序组的所有程序指令(P00-P63)删除;
503“清空所有”按键,点击该按键,可以将所有程序组(Z00至Z23) 的所有程序指令(P00-P63) 删除;
504“上传程序组”按键,点击该按键,可以将编号(8) 下拉选择框所指定的程序组的所有程序指令(P00-P63)上传到控制器保存;
505“上传所有程序组”按键,击该该按键,可以将所有程序组(Z00至Z23) 的所有程序指令(P00-P63) 上传到控制器保存;
(正常情况下,程序组、程序指令会自动上传并保存到控制器,用户不需要手动点击“上传”, “上传所有”按键进行保存,只有当编程网页与控制器之间的连接出现异常,需要手动点击“上传”或者“上传所有”按键将程序组保存到控制器)
511“上电运行”选择对话框,用于设置编号为501的下拉选择框所指定的程序组,在控制器上电之后,就自动运行;或者“上电不运行”,在上电之后,需要通过程序指令“调用”来控制运行;
512“删除”按键,点击该按键,可以删除515指令编号所对应的程序指令;
513“修改”按键,点击该按键,可以修改515指令编号所对应的程序指令;
514“插入”按键,点击该按键,可以515指令编号应的程序指令之前,插入一条程序指令。
图8、9为可编程逻辑控制器内置网页的系统设置显示界面,主要包括:
701网络参数设置区,包括设置WiFi AP的SSID、密码,远程云服务器的IP地址、端口以及密码,所连接的无线路由器的SSID以及密码等;
702 WiFi AP的显示区,浏览器定时从所述网络通信模块获取WiFi AP列表,并显示在其网页的WiFi AP的显示区702;
703 断电保存变量的设置区,通过可以通过该显示区的接口对断电保存的变量进行设置;
704其它参数的设置区,通过该显示区可以修改编程控制器的名称,修改可编程控制器实时时钟等。
以上所述,仅为本发明的具体实施,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。
因此,本发明的保护范围应该以权利要求所界定的保护范围为准。

Claims (5)

1.通过内置网页编程的可编程控制器,其特征在于,所述可编程控制器包括主控模块、网络通信模块、输入输出硬件模块:
所述主控模块作为可编程控制器的控制中心,其通过数字通信接口或者内存共享方式与所述网络通主模块相连,接收来自所述网络通信模块的消息,响应消息并应答;同时,负责程序的存取,解析以及执行;按照程序指令对可编程控制器的输入、输出等硬元件进行判断、控制,对变量、计时器、延时器等软元件进行运算、判断、控制;
所述主控制模块包括程序存储单元、程序解析以及运行单元、数据通信单元以及输入输出控制单元:
所述程序存取单元,用于操作所述主控模块的存储器,根据从其他单元获取的包括参数或者程序的通知,将其中的参数或者程序写入存储器,或者,根据从请求方接受到的通知,从存储器读取控制器的参数或者程序返回给请求方使用;
所述程序解析以及运行单元,用于从所述程序存取单元获取的参数以及程序解析成程序指令,通过所述输入输出控制单元检测所述输入输出硬件模块的包括开关量输入、模拟量输入等,根据不同指令的定义,执行条件判断,变量运算,计时器控制,程序组控制等操作,并按照执行结果,通过所述输入输出控制单元操作所述输入输出硬件模块;
所述数据通信单元,用于与所述网络通信模块建立数字通信通道,从所述网络通信模块接受读写命令,解析接收到的命令,根据解析结果通知所述程序存储单元执行读写操作,或者向所述网络通信模块上报可编程控制器的状态;
所述输入输出控制单元用于通过处理器的端口与所述输入输出模块相连,实现开关量的高、低电平检测,模块量的A/D转换检测,UART通信口的数据收发,以及继电器、三极管或者功率MOS管的控制;
所述网络通信模块支持TCP/IP协议栈,保存了用于对可编程控制器编程、设置的人机接口所需要的网页文件,其创建TCP服务器,侦听、接收来自于浏览器的HTTP请求,向浏览器提供网页文件,或者与所述主控模块通过数字通信接口读写程序、系统参数以及控制器的运行状态,并返回相应消息给浏览器;其创建TCP客户端,与远程云服务器的TCP服务器建立TCP长连接,侦听、接收来自于远程云服务器的TCP消息,从所述主控模块读写程序、系统参数以及控制器的运行状态,并返回相应消息给远程云服务器;
所述网络通信模块包括TCP服务器单元、TCP客户端单元、通信转发单元、网页存储单元、网络管理单元;
所述TCP服务端单元,其创建TCP服务端,监听来自用户浏览器的HTTP请求,按HTTP协议解析接收到的请求,并根据请求的URL地址以及所携带的参数进行判断;根据判断结果,要么从所述网页存储单元读取对应的网页文件,按照HTTP协议将其封装成应答报文返回给浏览器;要么将HTTP请求转换成与所述主控模块之间的自定义通信命令通过所述通信转发单元发送给所述主控模块,等待来自所述主控模块由所述通信转发单元采用自定义协议的应答,并按照HTTP协议封装成报文,返回给浏览器;要么修改所述网络通信模块的网络参数,通过所述网页存储单元将参数写入存储器,并将参数修改的结果按照HTTP封装成报文,返回给浏览器;
所述TCP客户端单元,其创建TCP客户端,连接至远程云服务器的TCP服务端,并维持TCP长连接,其接受来自TCP服务端的自定义协议的TCP消息,将消息转化以后经过所述通信转发单元转发给所述主控模块,之后等待由所述通信转发模块所转发的来自于所述主控模块的应答命令,转换成自定义协议的TCP消息返回给远程云服务器的TCP服务端;或者,修改所述网络通信模块的网络参数,通过所述网页存储单元将参数写入存储器,并将参数修改的结果按自定义协议的TCP消息返回给远程云服务器的TCP服务端;
所述网页存储单元,用于存储包含html文本以及javascript脚本的网页文件,将这些网页文件下载至用户浏览器运行,可以对可编程控制器进行编程、设置、查看状态;
所述通信转发单元,用于和所述主控模块通过数据通信接口(如UART等)实现数据交互;
所述网络管理单元,用于TCP/IP网络参数的管理,包括网络的初始化、状态管理、运行维护等;
所述输入输出硬件模块为对接入可编程控制器的信号做调理的硬件电路,以及将可编程控制器的处理器输出的信号做处理,控制继电器、三极管或者功率MOS最终作为可编程控制器的输出实现负载控制的硬件电路。
2.根据权利要求1所述的可编程控制器,其特征在于,所述网络通信模块为可编程控制器主处理器中的软件功能模块以及独立于主处理器、内置了TCP/IP协议栈的GPRS模块,主处理器通过串口用AT指令控制GPRS创建TCP客户端,基于2G/3G/4G/5G等移动网络与远程与服务器通过建立TCP长连接。
3.根据权利要求1所述的可编程控制器,其特征在于,所述网络通信模块为主处理器中的软件模块以及独立于主MCU的PHY驱动电路,软件模块支持TCP/IP协议栈,其通过控制MCU的MAC模块驱动外置的PHY驱动电路,实现TCP/IP数据收发,通过MCU内部的协议栈创建TCP服务端和TCP客户端,实现所述的TCP服务端单元以及TCP客户端单元。
4.根据权利要求1所述的可编程控制器,其特征在于,所述主控模块包含显示控制单元,所述显示控制单元包括输入按键以及显示器件,可编程控制器检测按键,控制显示屏,实现简单的人机交互;同时,用户通过从所述网络通信模块下载的网页在浏览器上对所述显示控制单元的按键逻辑、显示的格式以及内容进行设置,并通过所述的网络通信模块的TCP服务端或者TCP客户端转发数据存储至所述程序存储单元;之后,所述显示控制单元根据保存的参数进行按键事件的处理以及显示屏的显示。
5.根据权利要求1所述的可编程控制器,其特征在于,所述网络通信模块提供websocket服务端,浏览器通从所述TCP服务端单元下载网页文件之后,运行在浏览器的javascript脚本程序创建websocket客户端并连接至所述网络通信模块所提供的websocket服务端,从而实现浏览器和可编程控制器之间的点对点实时通信。
CN201810334057.3A 2018-04-14 2018-04-14 通过内置网页编程的可编程逻辑控制器 Pending CN108717285A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810334057.3A CN108717285A (zh) 2018-04-14 2018-04-14 通过内置网页编程的可编程逻辑控制器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810334057.3A CN108717285A (zh) 2018-04-14 2018-04-14 通过内置网页编程的可编程逻辑控制器

Publications (1)

Publication Number Publication Date
CN108717285A true CN108717285A (zh) 2018-10-30

Family

ID=63899071

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810334057.3A Pending CN108717285A (zh) 2018-04-14 2018-04-14 通过内置网页编程的可编程逻辑控制器

Country Status (1)

Country Link
CN (1) CN108717285A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110989487A (zh) * 2019-12-23 2020-04-10 北京东土科技股份有限公司 工业服务器的plc初始化方法、装置及可读存储介质
CN111937366A (zh) * 2020-04-09 2020-11-13 焦旭 Web请求处理方法和装置
CN113794772A (zh) * 2021-09-15 2021-12-14 山东有人物联网股份有限公司 一种远程访问终端设备内置页面的方法及系统

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001069335A2 (en) * 2000-03-13 2001-09-20 Schneider Automation Inc. A web browser
CN1770048A (zh) * 2005-09-29 2006-05-10 上海电器科学研究所(集团)有限公司 一种嵌入式网页服务器
CN105677448A (zh) * 2016-03-19 2016-06-15 张著岳 基于网页的可编程控制器的在线仿真方法及系统
CN105706009A (zh) * 2013-07-30 2016-06-22 德玛吉森有限公司 控制数控机床操作的控制系统及用于该系统的后端和前端控制装置
CN106325233A (zh) * 2015-07-07 2017-01-11 刘华 一种可视化编程逻辑分布控制系统及实现方法
CN107247682A (zh) * 2017-06-23 2017-10-13 海口丰润动漫单片机微控科技开发有限公司 HTML5Web网络单片机嵌入式系统
CN107861459A (zh) * 2017-11-09 2018-03-30 山东省计算中心(国家超级计算济南中心) 一种可配置显控一体化的plc控制系统及其控制方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001069335A2 (en) * 2000-03-13 2001-09-20 Schneider Automation Inc. A web browser
CN1770048A (zh) * 2005-09-29 2006-05-10 上海电器科学研究所(集团)有限公司 一种嵌入式网页服务器
CN105706009A (zh) * 2013-07-30 2016-06-22 德玛吉森有限公司 控制数控机床操作的控制系统及用于该系统的后端和前端控制装置
CN106325233A (zh) * 2015-07-07 2017-01-11 刘华 一种可视化编程逻辑分布控制系统及实现方法
CN105677448A (zh) * 2016-03-19 2016-06-15 张著岳 基于网页的可编程控制器的在线仿真方法及系统
CN107247682A (zh) * 2017-06-23 2017-10-13 海口丰润动漫单片机微控科技开发有限公司 HTML5Web网络单片机嵌入式系统
CN107861459A (zh) * 2017-11-09 2018-03-30 山东省计算中心(国家超级计算济南中心) 一种可配置显控一体化的plc控制系统及其控制方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
陈川 等: "基于SOPC的嵌入式Web服务器系统设计与实现", 《科技导报》 *
马军强 等: "基于OPC服务器和网站应用程序的可编程逻辑控制器", 《邢台职业技术学院学报》 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110989487A (zh) * 2019-12-23 2020-04-10 北京东土科技股份有限公司 工业服务器的plc初始化方法、装置及可读存储介质
CN111937366A (zh) * 2020-04-09 2020-11-13 焦旭 Web请求处理方法和装置
CN111937366B (zh) * 2020-04-09 2023-08-01 北京微动数联科技有限公司 Web请求处理方法和装置
CN113794772A (zh) * 2021-09-15 2021-12-14 山东有人物联网股份有限公司 一种远程访问终端设备内置页面的方法及系统
CN113794772B (zh) * 2021-09-15 2024-05-07 山东有人物联网股份有限公司 一种远程访问终端设备内置页面的方法及系统

Similar Documents

Publication Publication Date Title
CN106094534A (zh) 一种可穿戴设备智能手表控制的智能家居系统
CN103051693B (zh) 设备控制方法与移动通信终端
CN102664749B (zh) 一种可配置遥测数据的监控系统
CN106341444B (zh) 数据访问方法和装置
US11949736B2 (en) Data capture on a serial device
CN103176789A (zh) 一种实现开放平台功能扩展的方法及系统
CN108717285A (zh) 通过内置网页编程的可编程逻辑控制器
CN103049190A (zh) 一种移动通信终端及控制设备操作的方法
CN103067448B (zh) 设备控制方法与移动通信终端
CN103051694B (zh) 移动通信终端控制设备的方法与移动通信终端
US20150227502A1 (en) Spreadsheet to webpage conversion system and method
CN109413140A (zh) Pacs服务器远程自动升级的方法
CN109120716A (zh) 设备控制方法、装置、存储介质以及设备机组
CN111708534A (zh) 一种支持语音识别及搜索和图像识别的系统
Culic et al. Commercial and Industrial Internet of Things Applications with the Raspberry Pi: Prototyping IoT Solutions
CN109104629A (zh) 一种兼容iptv页面和公网页面的方法和浏览器
Ballesteros et al. Plan B: Using files instead of middleware abstractions
CN110069351B (zh) 触控设备的双系统通信方法、装置以及触控设备
CN101738958B (zh) 主动式监控系统及其方法
CN110191006A (zh) 物联网云平台及其工作方法
CN108737214A (zh) 测试方法及系统
CN213581775U (zh) 一种智能家居系统
TW466450B (en) Method and system for establishing an internet interface
CN107024879A (zh) 内嵌网页监控服务器的工业自动控制设备、方法及路由器
Jianbo et al. Smart home system based on wechat applet

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
WD01 Invention patent application deemed withdrawn after publication
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20181030