模拟量批量的读入

已锁定

Next one

  • 帖子

    6
  • 精华

    0
  • 被关注

    0

论坛等级:新手

注册时间:2014-08-03

普通 普通 如何晋级?

模拟量批量的读入

1355

2

2014-09-16 09:33:05

只需简单的编程即可实现大批量的模拟量读入
说明一下我用的是300的plc
第一步创建一个FB AND DB块
然后把程序编在FB块里
在开始编程序之前我们要先定义一下FB块的接口,需要用到四个输入都是int形的,分别是模拟量要存的数据块号DB_NO,而且你还可以指定是从数据块的第零位开始存还是从第一百位开始存DBW_Adrees,模拟量的起始地址AIW_Adress,和模拟量的通道数Len,也就是有几个输入。
好了准备工作完成开始编程序,是用stl编的

L DB_NO //加载数据块号

T LW 2 //暂存LW2

OPN [LW2] //间接寻址

L AIW_Aress //加载模拟量起始地址

SLD 3 //左移三位形成地址

T LD 4 //暂存LD4

L DBW_Aress //加载数据块模拟量存入起始地址

SLD 3 //由于后边是对数据区进行寻址所以就需要左移三位了,至于不明白的同学,就回去好好看看书了

T LD 8 //暂存LD8

L Len // 加载通道数

NEXT:T LW2 //LOOP 循环开始

LAR1 LD4 //加载LD4中的内容到地址寄存器1

L PIW[AR1,P#0.0] //加载模拟量

T LW0 //暂存lw0

LAR1 LD 8 //加载ld8中的到ar1

L LW0 //加载lw0

T DBW[AR1,P#0.0] //存到DB块里

L LD4

+ L#16

T LD4 //地址加上16,因为int是十六位的

L LD8

+ L#16

T LD8 //同上

L LW0 // 加载循环次数

LOOP NEXT //如果lw0里边的数大于0就会一直循环,直到为零

这是在fb里的程序

在ob调用格式如下

CALL FB1
DB_NO := 1 //输入你要把模拟量放入的数据区DB1就填1,DB2就填2
DBW_Adrass := 0 //数据块存入起始地址
AIW_Adrass := 30 //模拟量起始地址比如iw30就填30啦
LEN := 100 //有一百个模拟量需要读入
好了教程结束。
模拟量批量的读入 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54616条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。