数组:可以创建包含多个相同数据类型元素的数组。 数组可以在OB、FC、FB和DB的块接口编辑器中创建。 无法在PLC变量编辑器中创建数组。
要在块接口编辑器中创建数组,请为数组命名并选择数据类型“Array [lo .. hi] of type”,然后根据如下说明编辑“lo”、 “hi”和“type”:
● lo - 数组的起始(最低)下标
● hi - 数组的结束(最高)下标
● type - 数据类型之一,例如 BOOL、 SINT、 UDINT
![9dec6da90d5be50df54b792eb6d5b56b.png](https://i-blog.csdnimg.cn/blog_migrate/70822b74bd618e1fbc74acf92625c2f6.jpeg)
ARRAY 数据类型规则
数组语法:Name [index1_min..index1_max, index2_min..index2_max] of
• 全部数组元素必须是同一数据类型。
• 索引可以为负,但下限必须小于或等于上限。
• 数组可以是一维到六维数组。
• 用逗点字符分隔多维索引的最小最大值声明。
• 不允许使用嵌套数组或数组的数组。
• 数组的存储器大小 = (一个元素的大小 * 数组中的元素的总数)
比如一个2维数组:
![f3c9d27aa2b46fb6832bec7bdc58f1e7.png](https://i-blog.csdnimg.cn/blog_migrate/42603628f621ba646c7338ee8843ba59.jpeg)
数组地址
ARRAY3[i,j] 如果 i =3 且 j=4,则对 ARRAY3的元素 [3, 4] 进行寻址,如下图:
![02689dcaa505a4809cb1b4860842cf79.png](https://i-blog.csdnimg.cn/blog_migrate/579062a6de1823dd7653874574e20a5a.jpeg)
上面手册中提到了可以在OB、FC、FB和DB的块接口编辑器中创建,上面举例中都是在DB块中创建并使用,下面以FC中的创建来举例看看:
在FC1中接口INOUT创建一个一维数组,也就是形参中创建数组变量,如下图:
![6db99d53c67bd26dbbe09b3860367e80.png](https://i-blog.csdnimg.cn/blog_migrate/c2286d6457f3a518c57569274effca33.jpeg)
编写一个加法程序如下:
![0b5cef7fe64db3daf0f21ea7639c3d2d.png](https://i-blog.csdnimg.cn/blog_migrate/04fb11244f5da5dab6e91874e9cc132d.jpeg)
在DB1中创建数组
![f128e67898d6ef9e264e69e8e0550174.png](https://i-blog.csdnimg.cn/blog_migrate/25494a388c898b05b41f7ca4d80274e8.jpeg)
数组作为FC实参
![0be89e9b1c84305bd213b9b8df780e52.png](https://i-blog.csdnimg.cn/blog_migrate/aa6bced0bbebc7a9de7a8e5ce4cfeab7.jpeg)
FC程序中使用数组元素,下标为变址寻址,使用形参
![9fd31ccfc8a3964bc3f4cd71ef32ded4.png](https://i-blog.csdnimg.cn/blog_migrate/89e8af5cd4e790f36a6015c005596e0b.jpeg)
![e375ab6f535400d5b5fa6f9d3c39e043.png](https://i-blog.csdnimg.cn/blog_migrate/6dc947065b15d1253de88a9043932c50.jpeg)