永宏PLC案例(变址寄存器设计范例) 点击:5815 | 回复:4



1436682482

    
  • 精华:4帖
  • 求助:0帖
  • 帖子:256帖 | 0回
  • 年度积分:0
  • 历史总积分:882
  • 注册:2014年8月05日
发表于:2015-12-30 14:16:49
楼主

永宏PLC案例(变址寄存器设计范例)

4.1 连续D总和计算 40

4.2 产品配方参数调用 41

4.3 以寄存器处理温度范例 42

4.1 连续D总和计算

【控制要求】

实现从D101开始的N个D寄存器总和计算(N长度可以自定义),计算结果存放在D100中,当运算结果小于-32768 或大于32767 时,对应的借位和进位标志指示灯点亮。

【元件说明】

PLC 元 件

   

控 制 说 明 

   

X0

   

启动开关

   

Y0

   

进位指示

   

Y1

   

借位指示

   

D500

   

FOR-NEXT的循环次数

   

P2

   

指针缓存器

   

PLC 元 件

   

控 制 说 明 

   

X0

   

启动开关

   

Y0

   

进位指示

   

Y1

   

借位指示

   

D500

   

FOR-NEXT的循环次数

   

P2

   

指针缓存器

   

【控制程序】

 

【程序说明】

1.  本例的关键是利用指针P2配合FOR~NEXT循环来实现加数的变化,当P2=101,加数DP2代表D101,当P2=102,加数DP2代表D102,依此类推,P2=110,加数DP2代表D110。

2.  连续相加的D 个数由FOR ~NEXT 循环执行次数决定,而FOR ~NEXT 循环执行次数由D500 值决定,D500 小于等于1 时,循环执行次数视为1。假设D500=10,则FOR ~NEXT执行10 次,才继续执行NEXT 后的程序。

3.  第1次执行FOR ~NEXT循环时,P2=101,DP2代表D101,ADD指令执行,D100与D101相加的结果存放在D100中,因被加数D100=0,所以存放加法运算结果的D100的内容值就为D101中数值,同时FUN.15指令执行,P2变为102。

4.  第2次执行FOR ~NEXT循环时,P2=102,DP2代表D102,ADD指令执行,D100与D102相加的结果存放在D100中,因被加数D100=D101,D100的内容值就为D101与D102中数值相加。

5.  依此类推,执行到第10次时,D100内容值为D101、D102、D103、D104、D105、D106 、D107、D108、D109、D110中所有数值相加。

6.  当相加结果数值小于-32768时,BR接通,输出线圈Y1导通,借位指示灯亮;当相加结果数值大于32767时,CY接通,输出线圈Y0导通,进位指示灯亮。

7.  注意:因为是持续相加,进位和接位指示灯亮的时间很短,很难观察得到,可以用自保持等方法来延长指示灯亮的时间来方便观察。

 

4.2 产品配方参数调用

【控制要求】

假设某种产品共有3 种型号,对应3组配方参数,每个配方包含10种参数,选择相应的配方组别开关,则加工时以该配方参数作为当前加工执行的配方参数。

【元件说明】

PLC 元 件

   

元 件 说 明

   

X0

   

第一组配方数据开关

   

X1

   

第二组配方数据开关

   

X2

   

第三组配方数据开关

   

D500-D509

   

第一组配方数据

   

D510-D519

   

第二组配方数据

   

D520-D529

   

第三组配方数据

   

D0-D9

   

当前执行的配方数据

   

P0

   

指针缓存器

   

P1

   

指针缓存器

   

PLC 元 件


   

元 件 说 明

   

X0

   

第一组配方数据开关

   

X1

   

第二组配方数据开关

   

X2

   

第三组配方数据开关

   

D500-D509

   

第一组配方数据

   

D510-D519

   

第二组配方数据

   

D520-D529

   

第三组配方数据

   

D0-D9

   

当前执行的配方数据

   

P0

   

指针缓存器

   

P1

   

指针缓存器

   

【控制程序】

 

 

 

【程序说明】

1.  本例的关键是利用P0、P1指针缓存器配合FOR~ NEXT 循环来实现D编号的变化,将存放配方参数的其中一组寄存器传送到D0~D9,作为当前执行的配方参数。

2.  当选择其中一组配方参数时,X0、X1、X2 其中一个将变为ON,P0的值将分别对应为500、510、520,DP0 将分别代表D500、D510、D520,同时[RST M1]指令执行,M1 复位变为Off,RST P1指令和FOR~NEXT 循环将被执行,因P1 被复位变为0,DP1 代表D0。

3.  本例中FOR ~NEXT 循环执行次数为10 次,假设选择的是第一组配方,则DP0将从D500~D509 变化,DP1将从D0~D9变化,实现第一组配方参数数据的调用。

4.  假设选择的是第一组配方,执行第1 次循环时,D500的值将被传送到D0,执行第2 次循环时,D501的值将被传送到D1……,依此类推,执行第10次循环时,D509的值将被传送到D9 中。

5.  当循环次数到达时,即P1=10,[SET M1]指令将被执行,M1被置位变为ON,FOR~NEXT循环中的指令因M1的常闭接点断开而停止执行。

6.  本例实现的是10个参数的3组配方数据的传送,通过改变FOR~NEXT循环的次数,很容易改变配方中参数个数,而要增加配方的组数,可在程序中增加一条将存放配方数据D的起始编号值“MOV”到 P0的MOV指令即可。

 

4.3 以寄存器处理温度范例

【控制要求】

FBS-40MA + FBs-TC16,侦测外部16路温度, 每隔3秒将新温度数据放入D101-D116;当温度超过40℃或小于- 40℃时,正常指示灯灭。

【组件说明】

PLC 组 件   组 件 说 明

   

Y0-Y15

   

正常温度指示灯

   

D101-D116

   

存放温度侦测数值

   

P0.P1.P2.P9

   

指针缓存器

   

 

【控制程序】


 

 

【程序说明】

1. 当PLC上电启动M1924接通,将1000、101、0、101分别搬移到P0、P1、P9、P2指针缓存器;通过闪烁电路每隔3秒重新将1000、101、0、101搬移到P0、P1、P9、P2;

2. 再通过FUN70和FUN71配合FUN17将R1000-R1016搬到D101-D116中;温度比较中,通过FUN37区域比较和FUN41位写入再配合指针,将比较得出的状态循环写入R10中去;

3. 通过FUN8搬运指令将R10的内容送到Y0-Y15中,达到控制要求。

 





a61650034

  • 精华:0帖
  • 求助:5帖
  • 帖子:8帖 | 282回
  • 年度积分:0
  • 历史总积分:141
  • 注册:2017年4月11日
发表于:2016-10-10 19:28:59
1楼

我来是要积分的积分!!!

小五郎

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 11回
  • 年度积分:0
  • 历史总积分:101
  • 注册:2017年9月29日
发表于:2017-09-30 10:55:16
2楼

新人表示完全看不懂,想学习永宏PLC

为妍锁芯

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 3回
  • 年度积分:0
  • 历史总积分:53
  • 注册:2017年9月14日
发表于:2017-09-30 14:39:17
3楼

有点难度,确实看不懂啊

虎乐

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 1回
  • 年度积分:0
  • 历史总积分:1
  • 注册:2016年7月25日
发表于:2019-08-31 21:22:05
4楼

很好的案例程序,给加分。


热门招聘
相关主题

官方公众号

智造工程师