找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 5738|回复: 13

以什么1200PLC为例讲解PLC编程数组与指针的使用方法

 火.. [复制链接]
  • 打卡等级:常驻代表
  • 打卡总天数:34
  • 打卡月天数:6
  • 打卡总奖励:9027
  • 最近打卡:2025-12-17 23:15:51

2823

主题

541

回帖

2万

积分

管理员

积分
22569
发表于 2020-4-10 21:30:29 | 显示全部楼层 |阅读模式

上一篇我用高级语言展示了一下指针的概念,很多人反应看不懂,所以这一节,我结合1200 PLC来讲解指针与数组应用。

在实际应用中,我们经常需要对连续通道的模拟量进行采集转换。假设有3个连续通道的模拟量,IW100,IW102和IW104,即使转换的过程一样,但是还是需要写3条转换公式。如果有30个连续通道,就要写30条转换公式,显然是一个很繁琐的过程,这时候指针就显示出它的用武之地了,下面详细介绍在这个例子中的指针应用。



图1 模拟10个连续模拟量通道



图2 声明一个word类型数组

从图2中,声明了一个word类型的数组,数组大小为10,范围为0..9 。我们仔细观察这个偏移量,发现每个数组变量的偏移量间隔为2。这是因为我们声明的是word,占了两个Byte,所以在内存里面,每个变量间隔为2 。

现在我们的问题,是如何把MW100到MW118赋值给AIArr这个数组,一种最简单的办法是,写10条公式,一个一个赋值过去,比如AIArr[0]:=MW100,AIArr[1]:=MW102,整个过程很要命,最简单的方法当然是通过指针命令 POKE_BLK来实现,具体实现如下:



图3 POKE指令

在上面SCL指令,有两个地方需要注意,第一个是数据区域类型,见下图。第二个是Count,一定要以Byte类型来计算,假设是10个Word类型,Count设置为20,如果10个Real类型,Count应该设置多少呢?请读者自行思考。



图3 数区域类型

我们来看一下程序运行效果



图4 MW区域值



图5 AIArr数据

可以明显看到,两者的结果是一样。现在我们要对模拟量通道的数字量值转化为真实值。如果10个模拟量通道的转换公式是一样的,可以很方便的采用数组+循环来实现,声明一个数组用来存储真实值,如下所示:



图6 真实值数组声明

从上图,我们可以看到,RealArr的起始地址是20,数组之间的偏移量为4。请读者自行思考为什么是这样??



图7 数字量值转真实值过程

从上图中发现,通过FOR循环可以很方便的实现数字量转换为真实值。虽然两者类型不一样,但是PLC内部实现了隐式强制转换。



图8 转换效果

结束语

今天就讲到这里,欢迎大家留言拍砖,下节课开始讲通信。

欢迎大家关注另外一个平台,gongz hao 为 plcteacher,后面PLC方面的文章,都迁移到那里,方便阅读。

来源:PLC布道师


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
工控课堂 www.gkket.com
  • 打卡等级:即来则安
  • 打卡总天数:28
  • 打卡月天数:7
  • 打卡总奖励:7961
  • 最近打卡:2025-12-22 17:16:30

3317

主题

285

回帖

2万

积分

管理员

积分
24106
发表于 2020-4-10 21:30:30 | 显示全部楼层
无回帖,不论坛,这才是人道。
工控课堂 www.gkket.com

0

主题

105

回帖

161

积分

新手上路

积分
161
发表于 2020-4-17 21:38:01 | 显示全部楼层
顶,你牛
工控课堂 www.gkket.com
回复

使用道具 举报

0

主题

133

回帖

387

积分

注册会员

积分
387
发表于 2020-10-10 03:19:48 | 显示全部楼层
太生气了,无法HOLD啦 >_<......
工控课堂 www.gkket.com

0

主题

70

回帖

101

积分

新手上路

积分
101
发表于 2025-11-18 12:01:43 | 显示全部楼层
说得对!狠狠赞同,没毛病~
工控课堂 www.gkket.com

0

主题

106

回帖

159

积分

新手上路

积分
159
发表于 2025-11-20 03:44:15 | 显示全部楼层
谁懂啊!这内容我能循环看十遍
工控课堂 www.gkket.com

0

主题

95

回帖

144

积分

新手上路

积分
144
发表于 2025-11-20 03:53:38 | 显示全部楼层
这评论区卧虎藏龙,个个都是人才!
工控课堂 www.gkket.com

0

主题

78

回帖

104

积分

新手上路

积分
104
发表于 2025-11-20 03:53:57 | 显示全部楼层
这波分析到位,逻辑满分!
工控课堂 www.gkket.com

0

主题

90

回帖

136

积分

新手上路

积分
136
发表于 2025-11-20 03:54:16 | 显示全部楼层
路过混个脸熟,顺便为优质内容打 call~
工控课堂 www.gkket.com

0

主题

90

回帖

136

积分

新手上路

积分
136
发表于 2025-11-20 03:54:30 | 显示全部楼层
水贴也要有仪式感,我先来打卡~
工控课堂 www.gkket.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|手机版|免责声明|本站介绍|工控课堂 ( 沪ICP备20008691号-1 )

GMT+8, 2025-12-22 20:19 , Processed in 0.149234 second(s), 27 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表