中的数组怎么转成结构体_PLC知识,什么是数组和结构体?

今天给大家介绍一下什么是数组,什么是结构体,关于数组我们会介绍数组的定义、它的使用方法,关于结构体我们会介绍结构体的使用、怎么去建立一个结构体等知识,之前也是有部分学员有问过这些问题的,那么都一块儿给大家讲讲吧。

我们先介绍一下数组,数组指的是将相同数据类型的标签的连续集合体用一个名称表示。可以将基本数据类型、结构体作为数组进行定义。

数组分为一维数组、二维数组和三维数组。

e553e30c92c1a8d214943743119871c5.png

b7e4ad2b827566375abcf23caddd72db.png

c997672de22d72e53d589e9802e0ca9f.png

上图的bLable1是一维数组(要素数为4),bLable2是二维数组(要素数为5×4),bLable3是三维数组(要素数为6×5×4)。

上面我们可以看到要素这个名词,那么什么是要素呢?

数组的要素指的是数组的长度,我们在定义数组时,必须决定要素数(数组的长度)。书写格式如下:数组开始值~数组结束值为止的范围将变为要素数。

我们需要注意的是一个数组定义只能设置1个初始值,不能在各要素中设置不同的初始值,数组的全部要素中已设置的值存储为初始值。

使用数组时,为了识别各个标签,在标签名后用“[]”将下标括起来进行表示。此外,对于二维或三维数组,“[]”内的下标要用“逗号(,)”隔开表示。数组的下标可以指定的类型如下图。

944ddcdf229f6e12628a913d8977e007.png

3332c87c37c136ad76d8971e992f13b5.png

通过在数组的下标中指定标签,由于数据存储目标变为动态,因此可以在执行重复处理的程序上使用。下图为在“uLabel4”的数组中连续以“1234”存储的程序。

59e5ad3d41e665c3779ea4ca654e0142.png

对于数组其实是可以省略要素编号使用的。省略要素编号使用的情况下,将作为数组要素的起始编号被转换。例如定义的标签名为“boolAry”,数据类型为“位(0..2,0..2)”数组的情况下,“boolAry[0,0]”与“boolAry”是一样的,会进行相同的处理。

下面以简单的小例子讲一下数组的使用,案例为采用数组实现数据累加的操作。

1、在全局标签中定义数组,选择数组元素“数组”、元素个数,设置好数据类型。

5abf10ad42c203146f44a22f82b7100d.png

45c191dd8b1a46597a48722768e13760.png

2、上图可见我们定义的是数组A,元素为10个,即数组A[0]~数组A[9]。我们再用这些数组元素编写如下程序即可。

02f5c40398998d9eff0fb645f0fef28f.png

接下来我们再看看什么是结构体,结构体就是将所有设备的不同数据类型的数据定义在一起形成一个模板,利用这个模板去填写属于自己对应的参数。在编写大型控制程序时,控制的东西很多,如果单一的去定义变量工作繁杂,而结构体在数据管理及调用方面大大提高了便捷性和数据查看的快捷性。

fd17a048c9cdde7eccb2d7732e2ea1eb.png

我们在使用结构体的时候,将定义的结构体作为数据类型的标签预先进行登录。指定配置的各构件时,在结构体标签名后用“句号(.)”间隔开并附上构件名就可以了。我们还可以将结构体置为数组后使用。作为数组声明的情况下,应在结构体标签名后用“[]”将下标括起来表示。可以将结构体的数组作为函数及FB的自变量进行指定。下图是使用置为数组的结构体的要素的表示方式。

a936242a0c9488fe11fc1ed58e971ac4.png

3238d58624ad3f7b80d7204d4fd82f0e.png

下面我们就来一起看看创建结构体的步骤:

1、在工程中通过“新建数据”创建结构体,设置好数据名。

b55f7170f419ae05c2d11d53c7096ad5.png

22c39c241795b6bce68b0f1f4f23f768.png

2、在结构体设置中设置好标签,包括电压、电流、频率和转速的标签名和对应的数据类型。

b84439a03bf831b02461a1baf3bb1d3b.png

3、在全局标签中设置好标签,注意数据类型选择为结构体-变频器。

d3428a52d2f42f215ad8434c08f9f80d.png

ce74b759850af827d56968da6003ce91.png

4、点击详细显示,在分配软元件中点击详细设置,我们还可以为其设置软元件。

62f11ed8058170d88b736fd9a2b44488.png

关于数组和结构体的知识,你了解了吗?

这个知识可能理解起来会相对难一点,但是像数组还是可能会应用的到的,也是有必要掌握一下的哦。如果有不懂的,也可以看看我们官网的课程哟~

(技成培训网原创,作者:蔡慧荥,未经授权不得转载,违者必究)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/467659.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MMU那些事儿

最近在重新看这部分知识点,内存管理和进程调度应该是Linux下最核心的两个东西,不管你做得多牛逼了,这两点拿出来讨论,总是会让人眼前一亮,或者是可以讨论很久很久,这篇文章,读完后可能也可以让大…

C语言、嵌入式中几个非常实用的宏技巧

宏打印函数 在我们的嵌入式开发中,使用printf打印一些信息是一种常用的调试手段。但是,在打印的信息量比较多的时候,就比较难知道哪些信息在哪个函数里进行打印。特别是对于异常情况的打印,我们需要快速定位到异常情况的位置。这时…

canvas 多次画图效果_canvas练习之终极的奔跑小人

这次做一个终极的练习,先看一下最后的效果。一个不停奔跑的小人,点击鼠标后会让他跑到目的地,并且呈现不同的角度。下面来看一下如何一步步来实现它的。准备网上下载了一张图片,其中包含了小人面向不同角度奔跑的各个分解动作。新…

C语言的爱你永不悔

#前言今天是520节,昨天晚上睡觉的时候,我家地瓜一直说520,520,我不知道要干啥,我就说,要睡就睡,不睡就起来。今天我看了朋友圈,我才知道原来520就是「我爱你」的意思。今天在朋友圈看到的一个小…

服务网关zuul之二:过滤器--请求过滤执行过程(源码分析)

Zuul的核心是一系列的过滤器,这些过滤器可以完成以下功能: 身份认证与安全:识别每个资源的验证要求,并拒绝那些与要求不符的请求。审查与监控:在边缘位置追踪有意义的数据和统计结果,从而带来精确的生成视图…

攻防比赛_2020年度泉州市大学生网络安全攻防比赛在黎明职业大学圆满落幕

10月16日下午,作为2020年国家网络安全宣传周泉州市系列活动之一,“泉州市大学生网络安全攻防比赛”在黎明职业大学智慧教学中心成功举办并圆满落幕。此次比赛由泉州市互联网信息办公室、泉州市教育局主办,黎明职业大学和泉州市网络与信息安全…

gitlab 如何关闭force push

把不允许force push的分支设置成保护分支,Push的时候就会提示不能force psuh。

camera中文版软件 ip_ip camera网络摄像机

IP Camera Viewer是一个方便可靠能够通过IP地址监控多台摄像头的软件。 需要的朋友们赶紧下载试试吧!你可以在几分钟之内设置一个免费的IP摄像监控系统, 保持在家里,办公室,停车场或任何地方,你都可以监控。同时查看多…

Ubuntu16.04通过GPT挂载硬盘

一般而言,服务器上挂载的硬盘都是比较大的,传统的对硬盘进行分区需要在终端敲sudo fdisk进行操作,但是, 当挂载的硬盘的容量大于2T的时候,是无法通过sudo fdisk进行挂载的,这个时候必须要进行GPT进行挂载&a…

Mplayer后台播放没有声音

昨天的文章,我觉得虽然不是很复杂,但是我自认为很多人应该是不懂的,不过好像阅读量不是很好,今天转发我师弟的一篇文章,我觉得这个也是大家没有注意到的。Linux 下的0 1 2特殊文件描述符~一、平台Ubuntu16.04(64位)二、…

python输出程序运行时间_叨叨 Python 性能优化工具

虽然Python是一个”慢慢的“语言,但是不代表我们对性能没有任何的追求,在程序运行过程中,如果发现程序运行时间太长或者内存占用过大,免不了需要对程序的执行过程进行一些监测,找到有问题的地方,进行优化。…

链接学习之obj文件探索

Windows的gcc环境,往官网http://sourceforge.net/project/showfiles.php?group_id2435 下载MinGW,安装,安装完毕后按照包 配置环境变量 a.在PATH的值中加入"C:\Program Files\MinGWStudio\MinGW\bin"。这是寻找gcc编译器的路径。…

http 请求默认时间_JMeter接口测试之HTTP请求默认值

不管是在UI级别的自动化测试还是在接口级别的自动化测试中,对公共数据数据的分离都是一种趋势,或者某种程度来说,这是自动化测试中必须要掌握的一种能力,是基本技能。这些公共数据就包含了测试地址,以及登录的账号密码…

有意思的select~

前言最近在写一个小程序,也就是简单的系统调用,但是神奇的是,我用的这个系统调用刚好就阻塞了。如果你也写过应用程序,肯定也会遇到过这样的问题。后来,发现了select这个好东西,可以用来监听文件描述。sele…

cesium 页面截图_Cesium开发入门篇 | 02开发环境搭建及第一个示例

开发环境准备利用Cesium API进行二次开发属于Web前端开发范畴,目前比较火的Web三剑客包括React、Vue、AngularJS,每个js库的详细介绍可转至官网查看,在此不做详细介绍。本次开发环境是基于Vue搭建的,需要安装(部署)的软件主要包括…

一个单片机ADC的挖坑填坑之旅

[导读] 本文来解析一个盆友在使用STM32采集电池电压踩过的坑。以STM32F4 的ADC属于逐次逼近SAR 型ADC为例进行分析,参考STM32F405xx Datasheet,对于如何编写ADC程序就不做描述了。先描述一下坑 采集电池电压,利用两个电阻将电池电压分压&…

of_property_read_string 剖析~

前言今天在一个群里面看到的一个朋友提交,说of_property_read_string 这个函数有两个定义,到底是用了哪个呢?所以这篇文章就说下这个函数。函数引用的头文件引用的头文件位置在\kernel-4.4\include\linux\of.h其中一个是extern int of_proper…

CPU频率和核心

设置CPU的核心数在/sys/devices/system/cpu目录下可以看到你的CPU有几个核心,如果是四核,就是cpu0,cpu1,cpu2,cpu3 4个文件夹。cpu0 常开。进一个其他文件夹,比如cpu1,里面有个online文件用cat命令查看该文…

关于“进程”与“线程”的最通俗解析

来源:电子工程专辑进程(process)和线程(thread)是操作系统的基本概念,但是它们比较抽象,不容易掌握。最近,我读到一篇材料,发现有一个很好的类比,可以把它们解…

要想选到音质好的耳机,你应该需要知道这些~

最近在一个音频公司调试我们设备的音频,从这次调试中,有所收获,希望这次的吹牛大家看完后,以后去买音频产品,可以分辨什么是好的,什么是不好的。有些产品硬件没有问题,但是产品经理因为个人喜好…