基于ST语言指针变量的可编程控制的方法技术

技术编号:22531328 阅读:68 留言:0更新日期:2019-11-13 08:45
本发明专利技术公开了一种基于ST语言指针变量的可编程控制的方法,包括串行数据收发流程,串行数据收发流程包括:定义类型为pointer的第一指针变量pdata1和第二指针变量pdata2;定义数组长度为N、类型为byte型的第一数组data1和第二数组data2;将第一数组data1的地址赋值给第一指针变量pdata1,将第二数组data2的地址赋值给第二指针变量pdata2;将第一指针变量pdata1指向的N个数据通过串口发送出去;接收串口的数据至第二指针变量pdata2指向的地址。本发明专利技术能大大减少代码量,无需定义固定地址的M区或定义内部数据块,动态实现,编写程序灵活性大大加强,执行效率大大提升。

Programmable control method based on St language pointer variable

The invention discloses a programmable control method based on St language pointer variable, including serial data receiving and sending process, which includes: defining the first pointer variable pdata1 and the second pointer variable pdata2 of type pointer; defining the first array data1 and the second array data2 of array length N and type byte; assigning the address of the first array data1 to The first pointer variable pdata1 assigns the address of the second array data2 to the second pointer variable pdata2; sends the N data pointed to by the first pointer variable pdata1 through the serial port; receives the data from the serial port to the address pointed to by the second pointer variable pdata2. The invention can greatly reduce the code amount, without defining the fixed address m area or defining the internal data block, realize dynamically, greatly enhance the flexibility of programming, and greatly improve the execution efficiency.

【技术实现步骤摘要】
基于ST语言指针变量的可编程控制的方法
本专利技术涉及可编程控制领域,特别涉及一种基于ST语言指针变量的可编程控制的方法。
技术介绍
可编程控制系统在我国已经有超过20年的应用,控制系统简称PLC。PLC控制系统采用可编程的标准语言,通常依据IEC61131-3标准,对控制器进行标准的语言开发应用。可编程控制器在机械、流程工业、工用工程、楼宇自控等等领域都有广泛的应用。随着PLC控制系统应用越来越广,控制系统的核心芯片性能需求也越来越高。在处理速度提升、控制器功耗降低、存储容量扩充、接口数量补充等方面,每年都有提高。因此,除了常规的输入输出点位以外,数据接口集成能力,也成了PLC控制系统的一大特色。对于PLC控制系统来说,编程语言早期普遍采用梯形图,适合电气工程师将二次电路图转换成梯形图。但是,近几年来,ST(结构化文本)语言基本被年轻工程师们接受。因为ST语言具有可读性强,方便加入注解,方便注释调试,方便写功能块函数等特点。通常中型规模的PLC控制系统,就要接入各种带通讯接口的设备,比如温湿度传感器、LED显示屏、电表、水表、空调主机、变频器等等设备,都需要通过串行接口接入。PLC在接入这些设备的时候,往往需要有一定的快速计算能力和数据存储能力。通常采用数组、连续地址变量和内部数据块组合的形式,对数据进行计算处理。但是,对于PLC语言来说,梯形图处理这些数据,基本没法看,又长又难读懂。一般采用ST语言来实现。但是ST语言规定的编程方法,对于数组、连续地址变量、内部数据块的复制、处理,也有一定的不足。比如数组与连续地址变量的转换,需要一个一个变量编写,代码量特别多,容易出错。采用内部数据块处理时,也要定义很多种类数据块。
技术实现思路
本专利技术要解决的技术问题在于,针对现有技术的上述缺陷,提供一种能大大减少代码量,无需定义固定地址的M区或定义内部数据块,动态实现,编写程序灵活性大大加强,执行效率大大提升的基于ST语言指针变量的可编程控制的方法。本专利技术解决其技术问题所采用的技术方案是:构造一种基于ST语言指针变量的可编程控制的方法,应用于可编程控制系统,包括串行数据收发流程,所述串行数据收发流程包括如下步骤:A)定义类型为pointer的第一指针变量pdata1和第二指针变量pdata2;B)定义数组长度为N、类型为byte型的第一数组data1和第二数组data2;所述N为大于1的整数;C)将所述第一数组data1的地址赋值给所述第一指针变量pdata1,将所述第二数组data2的地址赋值给所述第二指针变量pdata2;D)将所述第一指针变量pdata1指向的N个数据通过串口发送出去;E)接收所述串口的数据至所述第二指针变量pdata2指向的地址。在本专利技术所述的基于ST语言指针变量的可编程控制的方法中,所述N的大小为100。在本专利技术所述的基于ST语言指针变量的可编程控制的方法中,所述步骤D)通过如下程序实现:sersend(EN:=1,CON:=1,DATA:=pdata1,LENGTH:=100);其中,sersend为串口数据发送功能块,EN为使能状态,CON为串口,DATA为数据指针,LENGTH为发送的字节数。在本专利技术所述的基于ST语言指针变量的可编程控制的方法中,所述步骤E)通过如下程序实现:SerRecv(EN:=1,CON:=1,DATA:=pdata2);其中,SerRecv为串口数据接收功能块,EN为使能状态,CON为串口,DATA为数据指针。在本专利技术所述的基于ST语言指针变量的可编程控制的方法中,还包括PLC数据块复制流程,所述PLC数据块复制流程包括如下步骤:A′)定义类型为pointer的第三指针变量pdest和第四指针变量psrc;B′)定义数组长度为N、类型为byte型的第三数组data3和第四数组data4;所述N为大于1的整数;C′)将所述第三数组data3的地址赋值给所述第三指针变量pdest,将所述第四数组data4的地址赋值给所述第四指针变量psrc;D′)将所述第四指针变量psrc指向的长度为N的PLC数据块复制到所述第三指针变量pdest指向的PLC数据块。在本专利技术所述的基于ST语言指针变量的可编程控制的方法中,所述步骤D′)通过如下程序实现:NW_NeNCopy(DEST:=pdest,SRC:=psrc,LENGTH:=100);其中,NW_NeNCopy为数据复制功能块,DEST为目标地址,SRC为源地址,LENGTH为PLC数据块的长度。在本专利技术所述的基于ST语言指针变量的可编程控制的方法中,当EN为1时,开启使能状态,当EN为0时,关闭使能状态。在本专利技术所述的基于ST语言指针变量的可编程控制的方法中,当CON为1时,所述串口为串口1。实施本专利技术的基于ST语言指针变量的可编程控制的方法,具有以下有益效果:由于定义类型为pointer的第一指针变量pdata1和第二指针变量pdata2;定义数组长度为N、类型为byte型的第一数组data1和第二数组data2;将第一数组data1的地址赋值给第一指针变量pdata1,将第二数组data2的地址赋值给第二指针变量pdata2;将第一指针变量pdata1指向的N个数据通过串口发送出去;接收所述串口的数据至第二指针变量pdata2指向的地址,本专利技术是基于可编程控制器的ST编程语言内,设计了ST语言的指针变量,应用于可编程控制系统,IEC61131-3标准规定了可编程控制器语言的规范。本专利技术在规范的基础上,将指针变量应用在ST语言系统内。本专利技术的指针变量的类型为pointer,是标准以外的定义,本专利技术能大大减少代码量,无需定义固定地址的M区或定义内部数据块,动态实现,编写程序灵活性大大加强,执行效率大大提升。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术基于ST语言指针变量的可编程控制的方法一个实施例中串行数据收发流程的流程图;图2为所述实施例中PLC数据块复制流程的流程图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。在本专利技术基于ST语言指针变量的可编程控制的方法实施例中,该基于ST语言指针变量的可编程控制的方法应用于可编程控制系统,该基于ST语言指针变量的可编程控制的方法包括串行数据收发流程,该串行数据收发流程的流程图如图1所示。图1中,该串行数据收发流程包括如下步骤:步骤S01定义类型为pointer的第一指针变量pdata1和第二指针变量pdata2:本步骤中,定义类型为pointer的第一指针变量pdata1和第二指针变量pdata2。具体可以通过如下方式定义第一指针变量pdata1和第二指针变量pdata2:pdata1,pdata2:pointe本文档来自技高网
...

【技术保护点】
1.一种基于ST语言指针变量的可编程控制的方法,其特征在于,应用于可编程控制系统,包括串行数据收发流程,所述串行数据收发流程包括如下步骤:A)定义类型为pointer的第一指针变量pdata1和第二指针变量pdata2;B)定义数组长度为N、类型为byte型的第一数组data1和第二数组data2;所述N为大于1的整数;C)将所述第一数组data1的地址赋值给所述第一指针变量pdata1,将所述第二数组data2的地址赋值给所述第二指针变量pdata2;D)将所述第一指针变量pdata1指向的N个数据通过串口发送出去;E)接收所述串口的数据至所述第二指针变量pdata2指向的地址。

【技术特征摘要】
1.一种基于ST语言指针变量的可编程控制的方法,其特征在于,应用于可编程控制系统,包括串行数据收发流程,所述串行数据收发流程包括如下步骤:A)定义类型为pointer的第一指针变量pdata1和第二指针变量pdata2;B)定义数组长度为N、类型为byte型的第一数组data1和第二数组data2;所述N为大于1的整数;C)将所述第一数组data1的地址赋值给所述第一指针变量pdata1,将所述第二数组data2的地址赋值给所述第二指针变量pdata2;D)将所述第一指针变量pdata1指向的N个数据通过串口发送出去;E)接收所述串口的数据至所述第二指针变量pdata2指向的地址。2.根据权利要求1所述的基于ST语言指针变量的可编程控制的方法,其特征在于,所述N的大小为100。3.根据权利要求2所述的基于ST语言指针变量的可编程控制的方法,其特征在于,所述步骤D)通过如下程序实现:sersend(EN:=1,CON:=1,DATA:=pdata1,LENGTH:=100);其中,sersend为串口数据发送功能块,EN为使能状态,CON为串口,DATA为数据指针,LENGTH为发送的字节数。4.根据权利要求3所述的基于ST语言指针变量的可编程控制的方法,其特征在于,所述步骤E)通过如下程序实现:SerRecv(EN:=1,CON:=1,DATA:=pdata2);其中,SerRe...

【专利技术属性】
技术研发人员:朱健冯华强姚立孙京诰
申请(专利权)人:苏州保控电子科技有限公司
类型:发明
国别省市:江苏,32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1