Data processing method based on PLC

08-08-2023 дата публикации
Номер:
CN116560294A
Контакты:
Номер заявки: 49-10-20238287.4
Дата заявки: 27-04-2023

一种基于PLC的数据处理方法

附图说明

[0023]

为了更清楚地说明本发明实施例或现有技术中的技术方案和优点,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它附图。

[0024]

图1为本发明的现有技术代码示意图;

[0025]

图2为本发明的本发明代码示意图。

技术领域

[0001]

本发明属于数据处理技术领域,具体涉及一种基于PLC的数据处理方法。

具体实施方式

[0026]

为了更进一步阐述本发明为达成预定发明目的所采取的技术手段及功效,以下结合附图及较佳实施例,对依据本发明提出的技术方案的具体实施方式、结构、特征及其功效,详细说明如下。一个或多个实施例中的特定特征、结构或特点可由任何合适形式组合。除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。

[0027]

在本发明的一个实施例中,提供了一种基于PLC的数据处理方法,包括以下步骤:

[0028]

一种基于PLC的数据处理方法,包括以下步骤:

[0029]

获取货物数据信息,并对货物数据信息进行储存,所述数据信息包括但不限于货物位置、货物代码、货物重量、货物唯一标识码;

[0030]

将所述货物依次放入智能隧道库内,对于智能隧道库内所有货物进行统计,包括:

[0031]

设智能隧道库内最大库容结构为i层、j列,总库容可达i×j个货位,每个货位囤放m盘货物;

[0032]

若第一层第一列第一盘货物进行货物种类对比,直到找到所属货物种类并执行货物种类统计,第一层循环结束,或第一层第一列第一盘货物不在所里有的货物种类中跳出第一层循环;

[0033]

第一层第一列第一盘货物执行完第一层循环后,开始第一层第一列第二盘货物执行新一轮第一层循环,依次到达第一层第一列第m盘货物执行完第一层循环后,第二层循环结束;

[0034]

第一层第一列第一盘货物至第一层第一列第m盘货物执行完第二层循环后,开始第一层第二列第一盘货物至第一层第二列第m盘货物执行新一轮第二层循环,第一层第j列第一盘货物至第一层第j列第m盘货物依次执行完第二层循环后,第三层循环结束,第三层循环结束,至此,第一层所有货物完成统计;

[0035]

重复以上三层循环,经过i个循环周期后,完成全部货物的统计。

[0036]

在本实施例中,对货物数据信息进行储存,包括:

[0037]

对货物位置进行储存,所述货物位置包括层、列、位三个整型数,对货物位置建立三维数组。

[0038]

对货物代码进行储存,所述货物代码为纯数字字符,将所述纯数字字符转为双整数型进行存储。

[0039]

对货物重量进行储存,所述货物重量为浮点数,放大后转为整数型进行存储。

[0040]

对货物唯一标识码进行存储,所述货物唯一标识码包括英文字符和纯数字字符将所述英文字符转换为纯数字字符,并与后续纯数字字符合并为无符号整数型进行存储。

[0041]

作为实例,本步骤可以包括以下步骤:

[0042]

若智能隧道最大库容结构为40层、40列,总库容可达1600个货位,每个货位可囤放30盘货物,共计4.8万个货物。

[0043]

货物位置包括层、列、位三个整型数,对货物位置建立三维数组,例如Array[i,j,m]of Int,其中三维数组的三个维度的数据分别为i取值范围为0…39,j取值范围为0…39,m取值范围为0…29,不再占用PLC掉电保持存储空间,节省掉电保持存储空间281.25kb。

[0044]

货物代码,8位纯数字字符,例如12345678,将8位纯数字字符转为DINT双整数类型存储,掉电保持存储空间缩小为187.5kb,节省掉电保持存储空间187.5kb。

[0045]

货物重量,如浮点数,如25.00,放大100倍后转为INT整数类型存储,掉电保持存储空间缩小为93.75kb,节省掉电保持存储空间93.75kb。

[0046]

货物唯一标识码,4个英文字符+10位纯数字字符,例如GBLK1234567890;将英文字符按照A:01;B:02;C:03;D:04;E:05;F:06;G:07;H:08;I:09;J:10;K:11;L:12;M:13;N:14;O:15;P:16;Q:17;R:18;S:19;T:20;U:21;V:22;W:23;X:24;Y:25;Z:26转换,并与10位纯数字字符合并为18位ULINT无符号长整数类型存储,掉电保持存储空间缩小为375kb,节省掉电保持存储空间281.25kb;

[0047]

转换后的掉电保持存储空间大小为:656.25kb,占系统总掉电保持存储空间的57%,低于90%的使用安全范围内。

[0048]

在现有技术中PLC数据统计为:

[0049]

设库内数据A111代表第一层第一列第一盘货物,Aijm代表第i层第j列第m盘货物,库内最多设置40层、40列,总库容1600个货位,每个货位可囤放30盘货物;若库内共有100种货物,B1代表第一种货物,Bn代表第n种货物,n≤100;统计结果C1代表库内第一种货物数量,Cn代表库内第n种货物数量。

[0050]

现有方案在一个循环周期内逻辑执行如下:

[0051]

第一层循环(最内层):

[0052]

如果第一层第一列第一盘货物不是第一种货物,即A111≠B1,则执行下一种货物对比:第一层第一列第一盘货物是否是第二种货物,即A111=B2是否成立,直到第一层第一列第一盘货物找到所属的货物种类,以此统计库内的此种货物种类的数目增加1,或第一层第一列第一盘货物不属于此100货物,即A111≠B100,跳出最一层循环。由此可知,第一层循环最少1次,最多100次。

[0053]

第二层循环:

[0054]

第一层第一列第一盘货物A111执行完第一层循环后,开始第一层第一列第二盘货物A112执行新一轮第一层循环,依次到达第一层第一列第三十盘货物A1130执行完第一层循环后,第二层循环结束。由此,第二层循环执行次数为30次。

[0055]

第三层循环:

[0056]

第一层第一列第一盘货物至第一层第一列第三十盘货物执行完第二层循环,即A111~A1130执行完第二层循环后,开始第一层第二列第一盘货物至第一层第二列第三十盘货物执行新一轮第二层循环,即A121~A1230执行新一轮第二层循环,依次第一层第四十列第一盘货物至第一层第四十列第三十盘货物执行完第二层循环后,即A1401~A14030执行完第二层循环后,第三层循环结束。由此,第三层循环执行次数为40次。

[0057]

第四层循环:

[0058]

第一层第一列第一盘货物至第一层第四十列第三十盘货物执行完第三层循环后,即A111~A14030执行完第三层循环后,开始A211~A24030执行新一轮第三层循环,依次到达A4011~A404030执行完第三层循环后,第四层循环结束。由此,第四层循环执行次数为40次。

[0059]

至此本循环周期的数据统计结束,总的执行次数为(1~100)*30*40*40=48000~4800000次,本循环周期时长为4秒左右。

[0060]

本发明在一个循环周期内逻辑执行如下:

[0061]

第一层循环(最内层):

[0062]

如果第一层第一列第一盘货物不是第一种货物,即A111≠B1,则执行下一种货物对比,第一层第一列第一盘货物是否是第二种货物,即A111=B2是否成立,直到第一层第一列第一盘货物找到所属的货物种类,以此统计库内的此种货物种类的数目增加1,或第一层第一列第一盘货物不属于此100货物,即A111≠B100,跳出最一层循环。由此,第一层循环最少1次,最多100次。

[0063]

第二层循环:

[0064]

第一层第一列第一盘货物A111执行完第一层循环后,开始第一层第一列第二盘货物A112执行新一轮第一层循环,第一层第一列第三十盘货物A1130执行完第一层循环后,第二层循环结束。由此,第二层循环执行次数为30次。

[0065]

第三层循环:

[0066]

第一层第一列第一盘货物至第一层第一列第三十盘货物执行完第二层循环,即A111~A1130执行完第二层循环后,开始第一层第二列第一盘货物至第一层第二列第三十盘货物执行新一轮第二层循环,即A121~A1230执行新一轮第二层循环,依次到达第一层第四十列第一盘货物至第一层第四十列第三十盘货物执行完第二层循环后,即A1401~A14030执行完第二层循环后,第三层循环结束。由此,第三层循环执行次数为40次。

[0067]

至此本循环周期的数据统计结束,总的执行次数为(1~100)*30*40=1200~120000次,本循环周期时长为0.1秒左右,但此时只进行了第一层所有货物的统计,数据统计并未结束,因此新的循环周期开始,继续进行数据统计。

[0068]

执行A211~A24030的第三层循环,依次到达A4011~A404030执行完第三层循环后,共执行40个循环周期,所有数据统计结束,总的执行次数仍为(1~100)*30*40*40=48000~4800000次,执行时长为4s左右,但程序的循环周期从4s压缩到0.1s,既实现了全部数据的快速统计,又缩减了程序循环周期,满足其它逻辑动作的顺利进行。

[0069]

本发明将最外层的FOR#i:=0TO 39DO循环下放到单个扫描周期内,每个循环周期只执行一次3层for循环,经过40个循环周期后,实现了4层for循环运算,而单个循环周期被缩短到100毫秒左右,数量统计时效性要求低,每天只需要执行几次,所以,几秒的统计时间是可以接受的,但单个扫描周期如果达到几秒则PLC程序的其它逻辑控制将无法正常运行。

[0070]

应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。

[0071]

以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。

背景技术

[0002]

智能隧道最大库容结构为40层、40列,总库容可达1600个货位,每个货位可囤放30盘货物,共计4.8万个货物,需存储的信息包括:货物位置(层、列、位三个整型数)、货物代码(8位纯数字字符,例如12345678)、货物重量(浮点数,如25.00)、货物唯一标识码(4个英文字符+10位纯数字字符,例如GBLK1234567890)、货位冻结时间(整型数)等,并且数据需要掉电保持。

[0003]

若PLC系统按照原始数据格式存储,单货物唯一标识码所需要的存储空间就为:656.25kb,货物代码所需要的掉电保持存储空间为:375kb,货物重量:187.5kb,货物位置:281.25kb,总合计1500kb。而西门子CPU1511本体、PS扩展掉电保持数据区一共的存储空间为1152kb,PLC系统无法对以上数据进行掉电保持存储。

[0004]

且,对于库内所有货物的统计是最基本的需求,而三维数组的遍历需要三层For循环,货物代码代表了货物类别,如果货物类别有100种,遍历三维数组的同时还要与100种货物类别做对比,才能进行数据统计,这样就产生了4层For循环运算,西门子1511浮点数运算指令执行时间为384ns,一个4层For循环结束需要4s多,严重影响整个程序的扫描周期。而PLC系统不仅要完成数据统计,还兼顾设备的机械部件的逻辑运行,每个部件的轮换执行时效性很高,而且还有很多故障监测,发现故障后需要迅速输出报警并停机指令,而如果循环周期需要4s多,则无法保障机械部件正常的逻辑动作以及及时有效的故障保护动作。

[0005]

基于此,急需一种基于PLC的数据处理方法。

发明内容

[0006]

为了克服现有技术中的问题,本发明提出了一种基于PLC的数据处理方法。

[0007]

本发明解决上述技术问题的技术方案如下:

[0008]

一种基于PLC的数据处理方法,包括以下步骤:

[0009]

获取货物数据信息,并对货物数据信息进行储存,所述数据信息包括但不限于货物位置、货物代码、货物重量、货物唯一标识码;

[0010]

将所述货物依次放入智能隧道库内,对于智能隧道库内所有货物进行统计,包括:

[0011]

设智能隧道库内最大库容结构为i层、j列,总库容可达i×j个货位,每个货位囤放m盘货物;

[0012]

若第一层第一列第一盘货物进行货物种类对比,直到找到所属货物种类并执行货物种类统计,第一层循环结束,或第一层第一列第一盘货物不在所里有的货物种类中跳出第一层循环;

[0013]

第一层第一列第一盘货物执行完第一层循环后,开始第一层第一列第二盘货物执行新一轮第一层循环,依次到达第一层第一列第m盘货物执行完第一层循环后,第二层循环结束;

[0014]

第一层第一列第一盘货物至第一层第一列第m盘货物执行完第二层循环后,开始第一层第二列第一盘货物至第一层第二列第m盘货物执行新一轮第二层循环,第一层第j列第一盘货物至第一层第j列第m盘货物依次执行完第二层循环后,第三层循环结束,第三层循环结束,至此,第一层所有货物完成统计;

[0015]

重复以上三层循环,经过i个循环周期后,完成全部货物的统计。

[0016]

进一步地,对货物位置进行储存,所述货物位置包括层、列、位三个整型数,对货物位置建立三维数组。

[0017]

进一步地,对货物代码进行储存,所述货物代码为纯数字字符,将所述纯数字字符转为双整数型进行存储。

[0018]

进一步地,对货物重量进行储存,所述货物重量为浮点数,放大后转为整数型进行存储。

[0019]

进一步地,对货物唯一标识码进行存储,所述货物唯一标识码包括英文字符和纯数字字符将所述英文字符转换为纯数字字符,并与后续纯数字字符合并为无符号整数型进行存储。

[0020]

与现有技术相比,本发明具有如下技术效果:

[0021]

(1)本发明中,对货物位置建立三维数组,将货物代码转为双整数型进行存储,将货物重量转为整数型进行存储,将货物唯一标识码中英文字符转换为纯数字字符,并与后续纯数字字符合并为无符号整数型进行存储,节省掉电保持存储空间;

[0022]

(2)本发明将最外层层循环下放到单个扫面周期内,每个循环周期只执行一次三层循环,单个循环周期被缩短,减少数据统计的时间。



The invention belongs to the technical field of data processing, and particularly relates to a data processing method based on a PLC. The maximum storage capacity structure in the intelligent tunnel warehouse is i layers and j columns, the total storage capacity can reach i * j goods allocation, and m trays of goods are stored in each goods allocation; the first-layer first-column first-tray goods are subjected to goods type comparison, and first-layer circulation is completed; after the first-layer circulation is executed from the first-layer first-column second tray of goods to the first-layer first-column mth tray of goods, the second-layer circulation is completed; after the second-layer circulation is sequentially executed from the first tray of goods in the jth column of the first layer to the mth tray of goods in the jth column of the first layer, the third-layer circulation is ended; and repeating the above cycles, and completing the statistics of all goods after i cycle periods. According to the method, the outermost layer of circulation is placed in a single scanning period, and each circulation period only executes three layers of circulation once, so that the single circulation period is shortened, and the data statistics time is shortened.



0001.

1.一种基于PLC的数据处理方法,其特征在于,包括以下步骤:

获取货物数据信息,并对货物数据信息进行储存,所述数据信息包括但不限于货物位置、货物代码、货物重量、货物唯一标识码;

将所述货物依次放入智能隧道库内,对于智能隧道库内所有货物进行统计,包括:

设智能隧道库内最大库容结构为i层、j列,总库容可达i×j个货位,每个货位囤放m盘货物;

若第一层第一列第一盘货物进行货物种类对比,直到找到所属货物种类并执行货物种类统计,第一层循环结束,或第一层第一列第一盘货物不在所里有的货物种类中跳出第一层循环;

第一层第一列第一盘货物执行完第一层循环后,开始第一层第一列第二盘货物执行新一轮第一层循环,依次到达第一层第一列第m盘货物执行完第一层循环后,第二层循环结束;

第一层第一列第一盘货物至第一层第一列第m盘货物执行完第二层循环后,开始第一层第二列第一盘货物至第一层第二列第m盘货物执行新一轮第二层循环,第一层第j列第一盘货物至第一层第j列第m盘货物依次执行完第二层循环后,第三层循环结束,第三层循环结束,至此,第一层所有货物完成统计;

重复以上三层循环,经过i个循环周期后,完成全部货物的统计。

0002.

2.根据权利要求1所述的一种基于PLC的数据处理方法,其特征在于,对货物位置进行储存,所述货物位置包括层、列、位三个整型数,对货物位置建立三维数组。

0003.

3.根据权利要求1所述的一种基于PLC的数据处理方法,其特征在于,对货物代码进行储存,所述货物代码为纯数字字符,将所述纯数字字符转为双整数型进行存储。

0004.

4.根据权利要求1所述的一种基于PLC的数据处理方法,其特征在于,对货物重量进行储存,所述货物重量为浮点数,放大后转为整数型进行存储。

0005.

5.根据权利要求1所述的一种基于PLC的数据处理方法,其特征在于,对货物唯一标识码进行存储,所述货物唯一标识码包括英文字符和纯数字字符将所述英文字符转换为纯数字字符,并与后续纯数字字符合并为无符号整数型进行存储。