一种具有AT命令的可编程逻辑控制器的制作方法

文档序号:33509854发布日期:2023-03-21 22:04阅读:87来源:国知局
一种具有AT命令的可编程逻辑控制器的制作方法
一种具有at命令的可编程逻辑控制器
技术领域
1.本发明属于可编程逻辑控制器,具体涉及一种具有at命令的可编程逻辑控制器,可以方便应用于物联网终端、小型工业可编程控制设备以及basic编程语言教学设备。


背景技术:

2.at即attention,at指令集是从终端设备(terminal equipment,te)或数据终端设备(dataterminal equipment,dte)向终端适配器(terminal adapter,ta)或数据电路终端设备(data circuit terminal equipment,dce)发送的。通过ta,te发送at指令来控制移动台(mobile station,ms)的功能,与gsm网络业务进行交互。用户可以通过at指令进行呼叫、短信、电话本、数据业务、传真等方面的控制。
3.90年代初,at指令仅被用于modem操作。由hayes公司发明,已成为事实上的标准并被所有调制解调器制造商采用的一个调制解调器命令语言。每条命令以字母

at

开头,因而得名。at后跟字母和数字表明具体的功能。
4.at所有命令行必须以at作为开头,以回车(《cr》)作为结尾。响应通常紧随命令之后,它的样式是“《回车》《新行》《响应内容》《回车》《新行》”即:(《cr》《lf》《响应内容》《cr》《lf》)。每个指令执行成功与否都有相应的返回。
5.贺氏命令可分为四组:
6.(1)基本命令集一一个大写字母紧跟一个数字。如:m1。
7.(2)扩展命令集-一个“&”(and符号)和大写字母紧跟一个数字。它是基本命令集的扩展。如:&m1。注意:m1和&m1是不同的。
8.(3)专有命令集-通常使用一个反斜杠(“\”)或者是百分号(“%”)开头;这些命令在各modem厂商间差异很大。
9.(4)寄存器命令-sr=n。这里r是要改变的寄存器编号,n是要赋予的新值。寄存器代表内存中的指定位置,modem主板上有一些少量的内存空间。
10.modem本身可以在两种模式之间进行切换:
11.1,modem发送数据到远程modem时的数据模式。(在数据模式中,modem把它从计算机接收的任何东西作为数据通过电话线发送出去)。
12.2,数据被解释为命令而给本地modem的命令模式(本地modem应执行的命令)。
13.从数据模式切换到命令模式,会话发出3个加号的转义序列字符串(“+++”)并跟随一秒钟的暂停。转义序列结束后的暂停是必须的,以减少入站信号所造成的问题:如果三个加号接收后的1秒内接收到任何其他数据,它就不是转义序列并将作为数据发送。
14.at命令使用起来简单易学,得到推广,后来gsm模块与计算机之间的通信协议是一些at指令集。随着通信技术的发展,通信终端种类也丰富了,有以太网、rs485、wifi、4g、nb-iot、lora、emtc或私有通信协议等。这些通信终端中很多同样提供了at命令接口。
15.at命令一般通过rs232接口或3.3v电平的uart接口进行传递。通过计算机的多种串口调试软件就可以下发at命令,配置和调试各种通信终端非常容易。at命令一般立即执
行,也只执行一次,主要用来配置管理和拨号的等一次性任务。多数通信终端在配置完成后,通过at命令从命令模式进入数据模式,此时完成数据透传,at命令不再有效,需要特殊方式切换回命令模式。
16.可编程逻辑控制器(programmable logic controller)简称plc,是一种数字运算操作的电子系统,专门在工业环境下应用而设计。是为适应多品种,小批量生产的需求而产生发展起来的一种新型的工业控制装置。它采用可以编制程序的存储器,用来在执行存储逻辑运算和顺序控制、定时、计数和算术运算等操作的指令,并通过数字或模拟的输入(i)和输出(0)接口,控制各种类型的机械设备或生产过程。除此这些,plc一般还有通信接口,通信接口的主要作用是实现plc与外部设备之间的数据交换(通信)。通信接口的形式多样,最基本的有以太网,rs-232,rs-422/rs-485等的标准有线接口。
17.plc的工作原理plc采用循环扫描的工作方式,在plc中用户程序按先后顺序存放,cpu从第一条指令开始执行程序,直到遇到结束符后又返回第一条,如此周而复始不断循环。根据国际电工委员会制定的工业控制编程语言标准(iec1131-3),plc有五种标准编程语言:梯形图语言(ld)、指令表语言(il)、功能模块语言(fbd)、顺序功能流程图语言(sfc)、结构文本化语言(st)。这五标准编程语言,简单易学。但是plc编程一般都在计算器特定程序上完成,在下载到plc前会经过转换,装换为plc设备可以执行或解析的代码。plc设备与计算机之间传递程序的接口协议由各个plc厂家自己定义,并不公开。因此开发plc设备同时需要开发一套计算机编辑/编译程序,对plc设备开发者提出很高的要求。
18.随着物联网的发展,物联网终端数量越来越多,物联网终端一般具有有线和/或无线的通讯接口,为了方便管理,也不少提供了at命令管理接口。除了通讯,物联网终端要完成相关信号采集,并可能需要完成相关控制动作。目前物联网终端方案多数采用图1和图2两种组成。图1为现有物联网终端开发方案一,通讯模块厂商提供不可二次开发的通讯模块,物联网终端厂商增加mcu,通过预定协议(如at命令)实现与通讯模块通讯,并处理外围接口和业务逻辑。图2为现有物联网终端开发方案二,通讯模块厂商提供可二次开发的通讯模块,物联网终端厂商在通讯模块的sdk基础上进一步开发,保留通讯模块通讯功能同时,进一步处理外围接口和业务逻辑。这两种方案的开发语言一般都是c语言,在计算机上采用mcu对应的开发环境,完成后将对应的二进制文件写入mcu。整个开发要求较高,需要开发者熟悉mcu硬件和对应的sdk。从使用者角度,除非修改二进制程序,一旦编程就不能在现场修改程序执行流程,很难实现同一个物联网硬件终端即插即用的满足不同应用场景,这极大制约了物联网终端硬件的通用化。
19.为了实现更简单、更灵活的编程化应用,也出现了一些支持lua、basic等解析型编程语言的物联网产品,在交互式程序模式输入程序、控制程序运行,pc端可不用特殊的编辑/编译软件,简化了设备的开发难度,但是并没有支持at命令。这样就不能享有at命令通用、简单、高效的好处。
20.at命令具有命令模式和数据模式,如果能将at命令和解析型编程语言结合到可编程逻辑控制器,此时可编程逻辑控制器具有命令模式、数据模式和程序模式,可以在不同模式之间切换。具有这些优点:(1)大大降低了plc设备的开发难度;(2)具有at命令通用、简单、高效等优点;(3)可以通过用户编程增加了at命令数量和功能;(4)能用at命令控制多个用户程序的不同执行方式,可后台定时循环运行一个或多个程序;(5)设备串口在命令模式
和数据模式之间切换,不仅提高了串口利用率,还为远程管理提供了物理通道。这将大大降低物联网终端和工业控制器开发难度,同时提高物联网终端和工业控制器的硬件通用化能力,又不会额外增加成本。


技术实现要素:

21.针对现有技术中存在的可提高空间,本发明提一种具有at命令的可编程逻辑控制器,其具有命令模式、数据模式和程序模式。
22.为达到以上目的,本发明采用的技术方案是:
23.一种具有at命令的可编程逻辑控制器,其特征是:所述可编程逻辑控制器包括1个mcu、1个串行接口。所述mcu预先写入了固件程序,可以解析预定的at命令。所述串行接口连接所述mcu和外部计算机,外部计算机通过所述串行接口给所述mcu发送at命令,让mcu从命令模式进入程序模式,外部计算机通过所述串行接口给所述mcu发送一系列编程命令。
24.所述mcu的固件程序还具有数据模式。通过at命令从命令模式进入数据模式,处于数据模式时,串行接口透明传输数据,通过特定数据模式可以切换回命令模式。
25.通过at命令进入程序模式后,所述mcu的固件程序处理接收到的编程命令系列,所述编程命令系列中的可执行信息被保存到mcu内部存储器,并可以被固件程序解析执行。可被固件程序执行的程序称为用户程序。
26.可选的,at命令设定所述mcu的固件程序执行用户程序的方式为定时循环方式,用户程序被定时循环执行,每次从第一条语句执行到最后一条语句。
27.可选的,at命令设定所述mcu的固件程序执行用户程序的方式为单语句方式,每执行完成一条语句暂停下来,此时用户可以输入控制命令,继续以单语句方式执行下一条语句,或连续执行指定数量的语句,或连续执行到程序最后一句。
28.进一步,at命令设定为单语句方式,每执行完成一条语句暂停下来,此时用户可以输入一条可执行语句,执行完这条语句后再次等待用户输入控制命令。
29.所述mcu可保存多个用户程序,每个用户程序可由一个at命令启动并指定执行方式。
30.更优的,所述一个或多个由at命令启动并指定定时循环方式的用户程序,由固件程序的软件定时器后续在后台调度执行,本at命令立即完成返回,用户可输入下一条at命令。
31.所述一个或多个由at命令启动并指定定时循环方式的用户程序,在后台执行过程中,可以由at命令停止。
附图说明
32.图1为现有物联网终端开发方案一;
33.图2为现有物联网终端开发方案二;
34.图3为本发明物联网终端开发方案一;
35.图4为本发明物联网终端开发方案二;
36.图5为一种basic可编程学习机;
37.图6为命令、程序、数据三种模式切换;
38.图7为后台定时循环执行多个程序;
具体实施方式
39.下面结合附图,对本发明的具体实施方式作进一步详细的描述。图3为本发明物联网终端开发方案一,图4为本发明物联网终端开发方案二,图5为本发明一种basic可编程学习机。
40.实施例一:
41.可编程物联网终端开发方案一,如图3,终端由mcu、通讯模块、天线、外围接口组成。其中通讯模块不可二次编程,完成与外部通信,无线通信方式如wifi、lora、zigbee等。mcu支持at命令+basic编程,完成外部设备连接,业务逻辑控制,并与通讯模块一起完成通信。通讯模块与mcu之间一般为uart或spi等标准接口,通信协议可以是at命令,也可能是私有协议。不可二次编程通讯模块一般为专门厂家批量生产。本发明的物联网终端采用通用mcu实现at命令和basic编程,外部计算机通过串口与本物联网终端连接,外部计算机运行普通串口终端软件或串口调试软件,如putty、securecrt等。以lora通信终端为例,介绍at命令和basic编程。
42.at所有命令行必须以at作为开头,以回车(《cr》)作为结尾。响应通常紧随命令之后,它的样式是“《回车》《新行》《响应内容》《回车》《新行》”即:(《cr》《lf》《响应内容》《cr》《lf》)。每个指令执行成功与否都有相应的返回。
43.at命令举例:
44.1)at:测试命令,响应内容:0k;
45.2)at?:帮助命令,响应内容:at命令相关用法提示,并回复0k;
46.3)atz:复位命令,响应内容:回复0k,并系统重启;
47.4)ata:数据命令,响应内容:回复0k,并进入数据透传模式;
48.5)at+deui=01:23:45:67:89:ab:cd:ef,设置设备eui地址命令,此处为01:23:45:67:89:ab:cd:ef,响应内容:0k;
49.6)at+appkey=2b:7e:15:16:28:ae:d2:a6:ab:f7:15:88:09:cf:4f:3c,设置app独有key命令,此处为2b:7e:15:16:28:ae:d2:a6:ab:f7:15:88:09:cf:4f:3c,响应内容:0k;
50.7)at+join=mode,lorawan入网命令并指定入网模式,mode=0为abp模式,mode=1为otaa模式,响应内容:0k;
51.8)at+send=12345678,发送包命令,此处发送内容为12345678,响应内容:0k;
52.9)atedit=n:进入命令basic程序模式,编辑指定程序,n=1时为程序1,最多16个程序,响应内容:如果有超10行的内容,打印程序1前10行,每行前显示行号和空格,并最后显示>,“>”标识为basic交互输入模式,等待用户输入。主要完成行编辑、程序的保存等功能,可以参考ubasic-plus开源代码。
53.10)atrun=n,1:进入命令basic程序模式,运行指定程序,n=1时为程序1,运行模式为mode1,响应内容:运行程序,最后显示>或自动返回at命令模式,“>”标识为basic交互输入模式,等待用户输入。运行模式mode1,逐行执行,显示>,回车后执行下一行;运行模式mode2,遍历执行(从第一行执行到最后一行);运行模式mode3,定时循环执行,此时at命
令立即完成并返回;运行模式mode4,停止正在定时循环执行的特定用户程序。
54.本发明的basic语言参考ubasic-plus开源代码,ubasic-plus开源代码在https://github.com/mkostrun/ubasic-plus可以获得,并有相关技术和使用说明。本发明借用了相关命令,本领域专业技术人员不难理解本发明实现过程。
55.mcu预先写入了固件程序,可以解析预定的at命令。串行接口连接mcu和外部计算机,外部计算机通过串行接口给mcu发送atedit命令,让mcu从命令模式进入程序模式,参考ubasic-plus开源代码,外部计算机通过串行接口给mcu发送一系列编程命令,完成程序输入、修改、保存等。
56.mcu的固件程序还具有数据模式。通过ata命令从命令模式进入数据模式,处于数据模式时,串行接口透明传输数据,通过特定数据模式(“+++”三个字符后并停顿1秒)可以切换回命令模式。
57.通过atedit命令进入程序模式后,mcu的固件程序处理接收到的ubasic-plus编程命令系列,编程命令被保存到mcu内部存储器,并可以被固件程序解析执行。可被固件程序执行的ubasic-plus程序称为用户程序。
58.可选的,at命令(如atrun=1,3)设定mcu的固件程序执行用户程序的方式为定时循环方式,用户程序被定时循环执行,每次从第一条语句执行到最后一条语句。
59.可选的,at命令设定mcu的固件程序执行用户程序的方式为单语句方式,每执行完成一条语句暂停下来,显示>,此时用户可以输入控制命令,直接回车,继续以单语句方式执行下一条语句,或数字m+回车,连续执行指定数量的m条语句,或数字0+回车,连续执行到程序最后一句。
60.at命令设定为单语句方式,每执行完成一条语句暂停下来,此时用户可以输入一条可执行语句,如printa,打印变量a的数字,执行完这条语句后再次等待用户输入控制命令,这大大方便调试了。
61.mcu可保存多个用户程序,最多16个程序(取决于内部存储空间),每个用户程序可由一个atrun命令启动并指定执行方式。atrun(n,2),程序从头到尾执行一遍,实际上可以认为用户程序扩展了at命令数量和功能。
62.一个或多个由atrun(n,3)命令启动并指定定时循环方式的用户程序,由固件程序的软件定时器后续在后台调度执行,n代表16个程序中的一个,本at命令立即完成返回,等待用户输入下一条at命令。
63.一个或多个由at命令启动并指定定时循环方式的用户程序,在后台执行过程中,可以由atrun(n,4)命令停止,n代表16个程序中的一个。
64.图6为命令、程序、数据三种模式切换,ata命令由命令模式切换到数据模式;“+++”和1秒停顿由数据模式切换到命令模式;atedit或atrun命令由命令模式切换到程序模式;通过exit或自动返回到命令模式。
65.图7为后台定时循环执行多个程序。固件程序中一部分支持串口交互,完成命令模式或数据模式的收发和处理工作。另一部分以中断方式支持定时器,在定时器中断中执行1个或多个用户basic程序。
66.实施例二:
67.可编程物联网终端开发方案二,如图4所示,终端由通讯模块、天线、外围接口组
成。其中通讯模块支持at命令+basic编程,实际为具有通讯功能的专用soc,专用soc厂家提供可以二次开发的软件开发工具sdk。此soc实现at命令+basic编程,实现方式和使用方法与实施例一无根本区别,不再复述。
68.实施例三:
69.前面实施例以物联网终端作为举例,其思路也适用其它类型的设备,图5为一种basic可编程学习机;此学习机包括mcu、外围接口和计算机,计算机的交互编程窗口程序(如putty、securecrt)通过串口与mcu相连,完成at命令和basic编程交互。此mcu实现at命令+basic编程,实现方式和使用方法与实施例一无根本区别,不再复述。计算机还具有上位机程序(如microsoft small basic)通过串口或网口与mcu相连,完成上位机图形化编程和mcu下位机basic编程之间的互动,大大丰富了basic学习的展示效果。
70.本发明提供的具有at命令的可编程逻辑控制器,并不限于上述物联网终端和basic教学设备等具体实施方式,本领域技术人员根据本发明的技术方案得出其他的实施方式,同样属于本发明的技术创新范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1