《s7-300寻址实例.doc》由会员分享,可在线阅读,更多相关《s7-300寻址实例.doc(17页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-dates7-300寻址实例s7-300寻址实例S7300寻址应用实例内容摘要:在plc编程过程中,凡涉及到大量数据处理时,都会用到寻址,这样数据处理起来很简便,让编程更加得心应手。关键字:寻址 S7-300 S7-400 西门子plc编程编程是通过计算机来解决现实问题,任何程序都有数据结构和算法两方面内容,其中数据是基础,如何处理数据,在编程过程中都是很重要的工作。在S7-
2、300和S7-400 plc编程的过程中,出于处理大量数据的需要,寻址是编程中的一项重要的工作,用于数据的存储,传送和转移。下面一段程序就是把一个数据块DB9中的50个数据循环下移一位,即第49个数据移到第50个数据字节中,第48个移到第49个,依次类推,第1个移到第2个,第50个在开始被保存的存储器中,最后再移到第一个数据字节中,思路是这样,具体实现方法如下:首先建一个数据块,在本例中建的是DB9,在数据中可以多建几个,这样便于观察数据在程序运行过程中是否溢出规定的范围。本例中共建了56个字节的变量,参与循环的数据为DB0到DB49。首先在初始化主程序OB100中写入赋初值的程序 OPN D
3、B 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 ) /若MD100大于p#0.0则执行移位 JCN ac /若MD100等于p#
4、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 100ac: NOP 0aB: 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 0af: 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-300400 PLC编程语句表和结构化控制语言描述(第3版)-