永宏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中,达到控制要求。