上海署晓自动化科技有限公司
专销售西门子各系列产品;西门子PLC;S7-200S7-300 S7-400 S7-1200 触摸屏,变频器,6FC,6SNS120V10 V60 V80伺服数控备件:原装进口电机,电线,电缆。
西门子全新原装现货PLC;S7-200S7-300 S7-400 S7-1200 触摸屏,变频器,6FC,6SNS120 V10V60V80伺服数控备件:原装进口电机(1LA7、1LG4、1LA9、1LE1),国产电机(1LG0,1LE0)大型电机(1LA8,1LA4,1PQ8)伺服电机(1PH,1PM,1FT,1FK,1FS)西门子保内全新原装产品‘质保一年。一年内因产品质量问题免费更换新产品;不收取任何费。
实体公司,诚信经营,价格优势,品质保证,库存量大,现货供应!!
采购西门子产品就选;上海署晓自动化科技有限公司
我们承诺七天内无理由退换!
西门子代理商,西门子一级代理商,上海西门子代理商,中国西门子总代理,西门子PLC代理商,西门子变频器代理商,西门子触摸屏代理商
在S7-1200PLC中,若需要根据数组下标值来对数组中元素的访问有两种方式可以实现,一是通过大家熟悉的梯形图来编写程序实现,二是可以通过SCL的编程方式来编写这样的程序实现。这里通过一个简单的例子为例,分别通过这两种方式如何实现通过索引数组的下标值来实现对数组中元素的访问。
例子说明:
假设需要从一组数据中找出一个大值,并记录这个大值是这组数据中的第几个数据。
先以大家相对来讲比较熟悉的梯形图的方式来实现此功能。这里我们需要用到通过读取域或写入域的指令,该指令根据索引的下标值来读取数值中相对应元素的值或写入数到数组中相对应的元素里。此例子中只需要用到读指令,指令位于移动操作指令中的“原有”文件夹中。
读取数组中元素值的指令格式如下:
名称 | 数据类型 | 功能描述 |
INDEX | DINT | 数组的下标值 |
MEMBER | 取决数组中所建立元素的数据类型 | 数组中的个元素 |
VALUE | 存放根据下标值读取出来的数组元素中的值 |
举例:
表示把数据中的data这个数组中的data[5]这个元素的值读取出来放入到MW100这个变量中。
写入数组中元素值的指令格式如下:
数据类型
功能描述
DINT
数组的下标值
取决数组中所建立元素的数据类型
把该值写入到通过下表指定的对应的数组元素中
数组中的个元素
表示把数据20写入到数据块1中的变量名为data的数组中的data[3]元素的存储器中。
在本例中,我们只需要用到个指令,设计一个如例题中所要求的梯形图程序。
程序编写思路
本例题要去找出大值,并把大值所处的位置记录下来,编程思路:假设变量MAX_DATA作为大值的存储器,根据下标值(INDEX)的多少去读取相应数值中对用的元素的值放于TEMP_DATA变量中,与MAX_DATA做比较,若MAX_DATA的值要小,则进行交换,记录INDEX值。INDEX加1,可以指向数组中的下一个元素。