资源描述
S7300寻址应用实例
内容摘要:在plc编程过程中,凡涉及到大量数据处理时,都会用到寻址,这样数据处理起来很简便,让编程更加得心应手。
关键字:寻址 S7-300 S7-400 西门子plc编程
编程是通过计算机来解决现实问题,任何程序都有数据结构和算法两方面内容,其中数据是基础,如何处理数据,在编程过程中都是很重要的工作。在S7-300和S7-400 plc编程的过程中,出于处理大量数据的需要,寻址是编程中的一项重要的工作,用于数据的存储,传送和转移。
下面一段程序就是把一个数据块DB9中的50个数据循环下移一位,即第49个数据移到第50个数据字节中,第48个移到第49个,依次类推,第1个移到第2个,第50个在开始被保存的存储器中,最后再移到第一个数据字节中,思路是这样,具体实现方法如下:
首先建一个数据块,在本例中建的是DB9,在数据中可以多建几个,这样便于观察数据在程序运行过程中是否溢出规定的范围。本例中共建了56个字节的变量,参与循环的数据为DB0到DB49。
首先在初始化主程序OB100中写入赋初值的程序
OPN DB 9
L P#0.0
T MD 96 //将间接寻址的地址MD96赋初值P#0.0
L 1
T MB 92 //将MB92设定为初始传送到DB9中的数据
L P#48.0
T MD 100 // MD100为被移位的数据,所以初值为P#48.0,移位时移//入P#49.0
然后写循环子程序,这里用FC9,然后在OB1中调用FC9,FC9中程序Network 1的思路是把DB9中的从DBB0到DBB49依次装入从1到50的数。
Network 1:
OPN DB 9 //打开DB9
A(
L MD 96
L P#49.0
<=D
) //做一个限定,当地址MD96小于等于P#49.0时,执行存储数据
JCN ae //若执行到P#49.0后,MD96地址加P#1.0变成P#50.0,则跳转到nop0
L MB 92 //依次把1到50
T DBB [MD 96] //传到DB0到DB49中
L MD 96
L P#1.0
+D
T MD 96 //装入一个数据后,地址加P#1.0
L MB 92
L 1
+D
T MB 92 //装入一个数据后,数据加1
ae: NOP 0
然后设定数据移位的地址MD100,每次m10.4由0置1的时候,都把MD100恢复到P#48.0,以便从倒数第二个数开始移位,并在移位开始时,将最先被覆盖的DBB49先存储到MB90中,以便在其他数据完成传送后,把MB90中的DBB49传入DBB0。
Network 2:
A M 10.4
FP M 10.5 //m10.4的上升沿脉冲
JCN ad // m10.4未触发时,跳走
L P#48.0
T MD 100 //每次触发移位时,把P#48.0存入递减地址MD100
L DBB 49
T MB 90 //每次触发移位时,把最先被覆盖的数先存入MB90中
ad: NOP 0
每次触发m10.4时,经过50次扫描,将49个数据下移一位,最后一个数据最后存入DBB0中。
Network 3:
OPN DB 9 //先打开数据块DB9
A M 10.4
JCN aB //若m10.4未触发,直接跳走
A(
L MD 100
L P#0.0
>=D
) //若MD100大于p#0.0则执行移位
JCN ac //若MD100等于p#0.0-p#1.0后则跳走
LAR1 MD 100 //MD100存入地址寄存器
L DBB [AR1,P#0.0]
T DBB [AR1,P#1.0] //把上一位移入下一位
L MD 100
L P#1.0
-D //存入一个后,地址减P#1.0
T MD 100
ac: NOP 0
aB: NOP 0
若MD100等于p#0.0-p#1.0,说明前面49个数都已经下移了,最后把预存到MB90中的DBB49存到DBB0中
Network 4:
A(
L P#0.0
L P#1.0
-D
L MD 100
==D
) //若MD100等于p#0.0-p#1.0,执行移位
JCN af //否则跳走
L MB 90
T DBB 0
af: NOP 0
程序写好后,编译保存,打开仿真器,将仿真器设为PLCSIM(MPI)模式,并执行运行run,如下图所示:DB9中的数据依次为16进制1到32,即为10进制的1到50。
当点击把m10.4置1,m10.5上升沿同时置1,循环移位开始,整体下移一位,最后一个数据循环到第一位数据字节上。效果如下图:
通过这个实验,可以了解S7300和S7400plc在处理数据时的强大功能,并为进行大型项目的开发打下一点基础。
参考文献:
1、西门子公司 《S7300 400寻址》
2、《西门子S7-300/400 PLC编程语句表和结构化控制语言描述(第3版)》
展开阅读全文