首页 上一页 1 2 下一页 尾页

用S7-300编写的二个小程序的展示 点击:3319 | 回复:27



wyb2866255---王者之师

    
  • 精华:57帖
  • 求助:0帖
  • 帖子:148帖 | 2872回
  • 年度积分:1
  • 历史总积分:31450
  • 注册:2010年7月01日
发表于:2012-03-20 00:35:46
楼主

          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在压滤机上的应用”一文,那里有具体程序。

 

 



楼主最近还看过



大器晚成

  • 精华:0帖
  • 求助:5帖
  • 帖子:90帖 | 435回
  • 年度积分:0
  • 历史总积分:1636
  • 注册:2002年9月19日
发表于:2012-03-20 15:53:03
1楼
写得不错啊,能否把DB号和传送的数的起始地址和传送的数,传送启动等编成一个块呢?

wyb2866255---王者之师

  • 精华:73帖
  • 求助:0帖
  • 帖子:218帖 | 2872回
  • 年度积分:0
  • 历史总积分:31450
  • 注册:2010年7月01日
发表于:2012-03-20 16:01:59
2楼

上面编写的程序就是编在一个子程序里,在主程序里调用该子程序即可。

大器晚成

  • 精华:0帖
  • 求助:5帖
  • 帖子:90帖 | 435回
  • 年度积分:0
  • 历史总积分:1636
  • 注册:2002年9月19日
发表于:2012-03-20 16:09:08
3楼

是功能块FC吧?那就要有参数,在OB中给出实参调用

wyb2866255---王者之师

  • 精华:73帖
  • 求助:0帖
  • 帖子:218帖 | 2872回
  • 年度积分:0
  • 历史总积分:31450
  • 注册:2010年7月01日
发表于:2012-03-20 17:52:11
4楼

是FC功能,我用的是FC3,直接调用FC3,在主程序里就用一条指令即可:

   

大器晚成

  • 精华:0帖
  • 求助:5帖
  • 帖子:90帖 | 435回
  • 年度积分:0
  • 历史总积分:1636
  • 注册:2002年9月19日
发表于:2012-03-21 08:56:12
5楼
谢谢了!要是有实参调用就更好了,使之具有可移植性。

Smile-王者之师

  • [管理员]
  • 精华:138帖
  • 求助:51帖
  • 帖子:3586帖 | 22532回
  • 年度积分:900
  • 历史总积分:151691
  • 注册:2006年8月04日
发表于:2012-03-21 08:57:45
6楼
引用 大器晚成 的回复内容:是功能块FC吧?那就要有参数,在OB中给出实参调用



大器晚成

  • 精华:0帖
  • 求助:5帖
  • 帖子:90帖 | 435回
  • 年度积分:0
  • 历史总积分:1636
  • 注册:2002年9月19日
发表于:2012-03-23 16:41:37
7楼

好象这个不能移植,我指的是DB块号,要传的起始地址和数量要在块中指定,具有通用性,对不?

wyb2866255---王者之师

  • 精华:73帖
  • 求助:0帖
  • 帖子:218帖 | 2872回
  • 年度积分:0
  • 历史总积分:31450
  • 注册:2010年7月01日
发表于:2012-03-23 17:47:29
8楼
你说的对。DB号是不能在程序中通过输入方式改变的,起始地址和传送字节数量可以通过输入方式改变的。如果想做一个通用性的FC,可在FC里多编几个不同的DB号的起始地址,外输入那个号的DB块首址,那个DB号传送程序有效,这样编虽然可实现通用性,但程序就显得长而不精。仅供参考。

flylovemore--王者之师

  • 精华:0帖
  • 求助:4帖
  • 帖子:13帖 | 342回
  • 年度积分:2
  • 历史总积分:1047
  • 注册:2011年2月23日
发表于:2012-03-23 21:09:55
9楼

200才刚入门

300就更看不懂了

么么奶茶

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 11回
  • 年度积分:0
  • 历史总积分:10
  • 注册:2012年3月20日
发表于:2012-03-26 10:48:21
10楼
亿维PLC完全兼容西门子S7-200、300系列,      质保5年。QQ2216488603

randgbond

  • 精华:0帖
  • 求助:1帖
  • 帖子:3帖 | 9回
  • 年度积分:0
  • 历史总积分:93
  • 注册:2009年7月15日
发表于:2012-03-29 17:21:45
11楼

在fc程序块中定义数据格式的时候可以讲db号对应成fc内部变量,在从外部调用的时候直接输入db号就可以

omigaa

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 33回
  • 年度积分:0
  • 历史总积分:148
  • 注册:2010年6月01日
发表于:2012-03-30 18:36:22
12楼

可以直接调用sfc20的。

    CALL SFC20

    SRCBLK:=P#DB100.DBX100.0 BYTE 50

    RET_VAL:=MW100

    DSTBLK:=P#DB200.DBX100.0 BYTE 50

大家参考下

 

彩云之滇东北

  • 精华:37帖
  • 求助:5帖
  • 帖子:148帖 | 2725回
  • 年度积分:0
  • 历史总积分:21121
  • 注册:2005年6月14日
发表于:2012-03-30 19:33:15
13楼

顶一个                                       

零下一度

  • 精华:1帖
  • 求助:11帖
  • 帖子:540帖 | 6056回
  • 年度积分:1
  • 历史总积分:24399
  • 注册:2011年5月08日
发表于:2012-03-30 19:35:48
14楼
不是说一个梯形图函数不能出现两个输出线圈?

EBN战略军团-王道火山

  • 精华:2帖
  • 求助:7帖
  • 帖子:101帖 | 1878回
  • 年度积分:0
  • 历史总积分:7858
  • 注册:2012年1月11日
发表于:2012-07-26 00:05:17
15楼
恩 不错  占贴学习了        

kskstiy-王者之师军团

  • 精华:0帖
  • 求助:1帖
  • 帖子:4帖 | 379回
  • 年度积分:0
  • 历史总积分:2649
  • 注册:2010年8月30日
发表于:2012-07-26 10:41:18
16楼

这种大批量的数据处理,梯形图实在写的太复杂了,语句表写就简单多了,一个循环就可以了.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。

大器晚成

  • 精华:0帖
  • 求助:5帖
  • 帖子:90帖 | 435回
  • 年度积分:0
  • 历史总积分:1636
  • 注册:2002年9月19日
发表于:2012-07-26 12:52:47
17楼
顶一下楼主和16楼的老师

奥特曼带我走

  • 精华:0帖
  • 求助:1帖
  • 帖子:10帖 | 394回
  • 年度积分:0
  • 历史总积分:2188
  • 注册:2010年4月22日
发表于:2012-07-26 13:28:13
18楼
顶楼主!!                         

lyld8341

  • 精华:0帖
  • 求助:1帖
  • 帖子:2帖 | 268回
  • 年度积分:0
  • 历史总积分:1875
  • 注册:2002年7月21日
发表于:2012-07-26 13:37:27
19楼
看了,学习中,,,,,,

飘风无影

  • 精华:0帖
  • 求助:5帖
  • 帖子:8帖 | 345回
  • 年度积分:0
  • 历史总积分:1175
  • 注册:2011年11月04日
发表于:2012-11-16 09:49:47
20楼
顶楼主,应该多发发的,让我们这些菜鸟多学习学习的,谢谢了

热门招聘
相关主题

官方公众号

智造工程师
    首页 上一页 1 2 下一页 尾页