多个模拟量快速编程技巧

风驰评趣事2024-05-07 15:08:08  80

导读:在我们的实际项目中经常需要使用模拟量来读取现场设备的数据。比如:设备的温度、液体的高度、流速、变频器的频率、阀门的开度等等。那么如果现场有多个模拟量的传感器要编写程序的话,可能工作量就会比较大,有没有更快捷的方式编程呢?那么本文就给大家分享多个模拟量快速编程的方法。本案例使用的是S7-1200PLC实现控制要求。

控制要求:将连续16个Al信号(IW96-IW126) ,根据信号的范围,转换成对应的工程量信号。比如:IW96测量的是温度,范围是0.0-100.0℃。IW96测量的是管道的压力,范围是0.0-1.0MPa。

1.组态模拟量模块

①在博途软件中组态1215CPU以及两个8通道模拟量模块,如图1所示

图1

②查看两个模拟量扩展模块的通道地址得知是IW96-IW126,如图2和图3所

图2

图3

2.程序编写

①在博途软件中新建DB1数据块,建立4个数组的数据类型,每个数组包含16个元素个数。比如“A”这个数组,包含了16个Int的数据。“LimlitMix”数组包含了16个Real数据。其中还建立了两个Int的数据,名称为“ForNum”和“ForNum1”,主要用于循环程序的使用。

图4

②如图5所示,在OB1程序块中编写程序。程序段1对循环次数清零。程序段2是标准化和缩放指令,标准化指令(NORM_X)中的VALUE这个管脚的地址,使用数组间接寻址,随着ForNum这个变量的变化,可以得知第一次的数据为A[0],第二次为A[1],依次递增。缩放指令的MIN和MAX管脚的参数也同样的是间接寻址,MIN管脚第一次的数据为LimlitMix[0],第二次的数据为LimlitMix[1],依次递增。MAX管脚第一次的数据为LimlitMax[0],第二次的数据为LimlitMax[1],依次递增。

程序段3使用的是ADD指令实现“ForNum”循环次数的递增,再判断循环次数,如果循环次数的值小于等于15则跳转到程序段2。

图5

③程序段4是使用PEEK_WORD指令将IW96为起始的16个数据映射到DB块的“A”数组中,这样就能把外部的16个模拟量通道的数据依次存入A[0]至A[15]中。其中指令的area的含义是:指定访问存储区类型,16#81:输入映像区。

dbNumber的含义是:用来指定访问数据块的编号。仅在访问数据块时使用,其他存储区为0。byteOffset的含义是:用来指定读取数据地址的偏移量。如图6所示

图6

3仿真测试

①第一个通道工程单位设置为0.0-100.0,第二个通道工程单位设置为0.0-1.0。第三个通道工程单位设置为-100.0-200.0。如图7所示

图7

②在强制表中写入三个模拟量通道数据。如图8所示

图8

③模拟量的数据已经转换成实际的工程单位值。如图9所示

图9

转载此文是出于传递更多信息目的。若来源标注错误或侵犯了您的合法权益,请与本站联系,我们将及时更正、删除、谢谢。
https://www.414w.com/read/442885.html
0
随机主题
吴绮莉曾称家门永远向女儿敞开, 晒切蒜视频遭嘲, 被问怎么沦落了笑疯了! 大S不接送孩子被学校劝退, 网友: 忙着捧光头, 忙着告前夫中肯! 鲁德点评今年法网夺冠热门! 支持德约科维奇的原因很牵强!早安! 世界丨中方反制12家美国军工企业;联合国被迫暂停在拉法分发援助食品曝森林北爱上汪峰损失大, 活动被取消, 阳光清纯遭质疑, 但不后悔OPPO Find X8或首发天玑9400芯片, 配备1.5K小尺寸直屏2024年暑期档,《封神2》缺席,《哪吒2》来袭,成龙对决谢霆锋梦幻西游:安东1093神器扇加盟夫子庙,曲阜冲2000万战神内蒙古打掉一个网络水军团伙, 13人获刑五款车选谁毛病少? 星瑞、思域、凌度、艾瑞泽8、朗逸故障率横比东部战区围岛军演! 剑指“台独”cos 从零开始的异世界生活 爱蜜莉雅恒瑞医药GLP-1产品组合授权出海, 总价约60亿美元《狐妖月红篇》发布会: 杨幂拘谨放不开, 胡连馨颜值出挑3k的华为智能锁怒换成1k的, 有些话不吐不快, 这回不再遥遥领先618不知道怎么入手数码产品? 这四款产品不容错过!记者: 皇马今夏不会寻找克罗斯替代者, 但明年会买中国制造又杀回第一!再次超过美国,成印度第一大贸易伙伴森林狼大战独行侠! 李凯尔1分钟砍7分 唐斯打铁 麦克丹尼尔斯爆发章子怡抵达戛纳, 墨镜白衣状态超级美, 落地即被众多外国粉丝欢迎权威确认! “菜鸟主帅”将正式接手拜仁! 10球15助天才攻击手来投
最新回复(0)