登录
首页
PLC论坛
西门子SIEMENS
回帖
发帖
正文
主题:s7 300中 ,---(OPN)′打开数据块指令 在什么情况下使用?
点击:9205 回复:4
楼主
编辑
引用
管理
85966805
只要是对 数据块里的 数据进行 读写操作,都要先用这个指令打开数据块,然后在进行相应的读写操作吗?还是说,在某些特定操作时,才需要?望不吝赐教~~
13-06-09 11:14
1楼
编辑
引用
管理
kachakacha
引用
85966805
在 2013/6/9 11:14:06 发言
【内容省略】
使用绝对地址寻址的情况下,无需使用OPN指令,例如:DB1.DBW0
使用相对地址寻址的情况下,需要使用OPN指令,例如OPN DB1
L DBW0
看不懂例子的话,可以去看看STL编程手册。
Good Luck~
13-06-09 11:35
2楼
编辑
引用
管理
85966805
引用
kachakacha
在 2013/6/9 11:35:00 发言
【内容省略】
说的很详细,多谢了~
13-06-09 12:24
3楼
编辑
引用
管理
djljcl
西门子对于寻址分为绝对寻址,相对寻址。绝对寻址入。 DB1.DBX1.0 DB1.DBB2. DB1.DBW4 是不需要用OPN指令的。比如使用相对寻址就要用OPN指令。因为西门子规定了DB1.DBW[AR1.P#0.0]这样是不允许的。只能先打开DB1,在对数据位,字节,字,双子进行操作。 OPN DB1, L DBW[AR1,P#0.0]可以同时打开一个共享数据块,一个背景数据块。举个例子吧,假如我从PIW272开始 一直到PIW286的数据读出写入DB1.的第0个字开始到14字的数据块里面。用32为指针加循环指令,就会使用OPN指令。
LAR1 P#272.0 //装入指针272.0到地址寄存1
LAR2 P#0.0 //装入指针0.0到地址寄存器2
OPN DB1 //打开数据块对DB1作为共享数据块
L 8 //载入循环次数8
FOR: T MW100 //保存到MW100
L PIW[AR1,P#0.0] //载入PIW地址寄存器1,偏移0的地址,
T DBW[AR2,P#0.0] //载入PIW地址寄存器2,偏移0的地址,
TAR1 //AR1 TO ACCU1
L P#2.0 //偏移2个字节
+D //双字想加
LAR1 //保存到AR1
TAR2 //AR2 TO ACCU1
L P#2.0
+D
LAR2
L MW100 // 载入循环次数到ACCU1
LOOP FOR //跳到标签FOR出循环,美循环一次对ACCU1减一,一直到0,跳出循环。
13-06-15 11:15
4楼
编辑
引用
管理
85966805
讲解的很详细,多谢~
13-06-17 16:33
工控新闻
米尔发表演讲,并携瑞萨RZ产品亮相2025 Elexcon深圳电子展
二季度业绩发力,港迪技术上半年实现营收2.1亿元
ABB为深圳首条跨海隧道提供关键配电设备
惊艳的“灯光秀”背后是谁在控制?华北工控智能灯光控制系统专用整机给出答案
中央首份碳市场文件发布!明确2027年覆盖工业主要排放行业
智算规模增长将超40%!华北工控持续嵌入式AI计算机的迭代升级
东芝推出采用TOLL封装的第3代650V SiC MOSFET
中国石化中原油田仪表专业技术骨干人员实践高级培训圆满完成
更多新闻资讯