用S7-300编写的二个小程序的展示
一、网友求助:请你提供一下把DB1的内容复制到DB2中去的s7-300的程序,不用系统功能,谢谢!
回复:你提出的“请你提供一下把DB1的内容复制到DB2中去的s7-300的程序,不用系统功能”的要求,我编了一段程序供你参考:是将DB1块的DB1.DBB100为首址连续50个字节数据,传送到DB2块里以DB2.DBB200为首址的连续50个字节中。见以下程序:
DB1数据块为人为设置数据,从DB1.DBB100开始填写数据,见下表:
在程序处于运行时监视DB2数据块,在未按启动开关(I124.0)前,DB2.DBB200为首址的连续50个字节内容皆为0,按下开关后,其DB2块的数据变为(见下表):
为了使不习惯看语句表编程的人看懂程序,用梯形图编程。但由于S7-300没有指针指令,故在编写数据传递时选用STL语句编程。
二、网友求助:暂停怎么实现呢.正转暂停,反转暂停,怎么实现.PLC控制压滤机自动换向.
回复::见下图,是用S7-300编写的带有暂停的电机正转、反转、停车的梯形图,供你参考:
上图是控制电机正传、反转、暂停的梯形图,图中Q1.0为电机正传输出,Q1.1为电机反转输出,I0.0为正传启动按钮,I0.1为停止按钮,I0.2 为反传启动按钮,I0.3为自锁式按钮作暂停开关。当电机运行时(正转或反转),只要按下暂停按钮(I0.4=1),电机将停止转动,抬起此按钮,电机将继续按原方向运转。
关于“怎么实现.PLC控制压滤机自动换向”,请见工控PLC擂台第20期--PLC应用实例里我写的“PLC在压滤机上的应用”一文,那里有具体程序。
楼主最近还看过
这种大批量的数据处理,梯形图实在写的太复杂了,语句表写就简单多了,一个循环就可以了.DB1为要传送的数据块,DB2为要存放的数据块,在里面定义下DBB的数据类型为BYTE就OK 了
L 0 /指针起始地址
T MW 0
L 50 /循环次数
M001:T MW2 /循环计数器
L MW0
SLW 3 /地址左偏移3个位。
LAR1 /存入地址寄存器
OPN DB1
L DBB【AR1,P#100.0】
OPN DB2
T DBB【AR1,P#200.0】
L MW0
L 1
+ I
T MW0
L MW2
LOOP M001
JU M002
M002:NOP 0
GOOD LUCK。