一、CPM2A高速计数DM6642的设置
DM6642 |
00~03 |
高速计数器输入模式设置 |
04~07 |
高速计数器复位方式设置 |
|
08~15 |
高速计数器使用设置 |
DM6600~DM6614:设置断电上电生效。
DM6615~DM6644:设置传输给PC后在下次开始时才生效。
DM6645~DM6655:设置传入PLC后生效。
二、CPM2A复位方式(软复位、Z相+软复位)
1.软复位,当复位信号一直为ON时,它只复位一次之后又继续进行计数,然后程序控制一下有一个OFF信号,再有一个ON信号之后,它才再复位一次。
2.Z相+软复位,当复位信号一直为ON时,它只复位一次之后又继续进行计数,然后程序控制一下有一个OFF信号,再有一个ON信号之后,它才再复位一次。
三、CPM2A高速计数指令的使用
注册比较表-CTBL(63)
CTBL(63) |
P |
C |
TB |
P:端口,CPM2A为0
C:控制数据,CPM2A为000~003
TB:比较表首地址(IR、SR、AR、DM、HR、LR)
控制数据C |
CTBL(63)的功能 |
000 |
注册一个目标值比较表并启动比较 |
001 |
注册一个范围值比较表并启动比较 |
002 |
注册一个目标值比较表,用INI(61)指令启动比较 |
003 |
注册一个范围值比较表,用INI(61)指令启动比较 |
模式控制-INI(61)
INI(61) |
P |
C |
P1 |
P:端口,CPM2A为000,010,100,101,102,103
C:控制数据,CPM2A为000~005
P1:PV当前值首地址(IR、SR、AR、DM、HR、LR或000)
注意:当C为000,001,003,005时,P1必须设为000
控制数据C |
P1 |
INI(61)的功能 |
000 |
000 |
启动CTBL(63)表格比较 |
001 |
000 |
中止CTBL(63)表格比较 |
002 |
新PV值 |
改变高速计数器的PV值或者计数模式下的中断输入 |
003 |
000 |
中止脉冲输出 |
004 |
新PV值 |
改变脉冲输出的PV值 |
005 |
000 |
中止同步脉冲控制输出 |
读取PV值(比248、249通道读到的当前值精确)PRV指令是时时刷新的。
PRV(62) |
P |
C |
D |
P:端口,CPM2A为000,010,100,101,102,103
C:控制数据,CPM2A为000~003
D:目的首地址(IR、SR、AR、DM、HR、LR)
注意:1.D和D1+1必须在同一个数据区内
2.当D使用DM区,必须是可读/写的DM区
P |
功能 |
|
000 |
指定高速计数器的输入(输入000.00,000.01,000.02)。同步脉冲控制的输入频率(输入000.00,000.01,000.02),单相脉冲输出0,无加速/减速(输出01000和01001),单相脉冲输出0,梯形加速/减速(输出01000),或者同步脉冲控制输出0(输出01000/01001)。 |
|
010 |
指定单相脉冲输出1,无加速/减速(输出01000)或者同步脉冲控制输出1(输出01000) |
|
100 |
定义中断输入0为计数模式(输入00003) |
|
101 |
定义中断输入1为计数模式(输入00004) |
|
102 |
定义中断输入2为计数模式(输入00005) |
|
103 |
定义中断输入3为计数模式(输入00006) |
|
|
|
|
C |
功能 |
目的字 |
000 |
读取高速计数器或者中断输入(计数模式)的PV或者同步脉冲控制的输入频率 |
D和D+1 |
001 |
读取高速计数器或者脉冲输出的状态 |
D |
002 |
读取范围对比的结果 |
D |
003 |
读取脉冲输出的PV值 |
D和D+1 |
四、CPM2A高速计数使用CTBL指令
1)CTBL指令目标值比较最多设置16个目标值。
248、249当前值与设置目标值相比较,当PV=SV调用子程序。
当增值计数子程序号为0000~0049,当减值计数子程序号为F000~F0049。
当目标值比较完成表中最后一个目标值比较,才返回执行第一个目标值。
目标值比较实验1:目标值按从小到大的顺序排列
子程序号子 目标值 目标值地址
1 1000 DM100
2 2000 DM200
3 3000 DM300
结果是当PV=SV,依次执行子程序。
目标值比较实验2:目标值不按从小到大的顺序排列
子程序号子 目标值 目标值地址
1 2000 DM100
2 1000 DM200
3 3000 DM300
结果是当PV=1000时,不调用2号子程序,当PV=2000时,同时调用1和2号子程序,这样程序执行有误动作。
2)CTBL指令范围值比较最多设置8个范围比较(如果小于8个范围比较,可以把不使用的子程序号写为FFFF)
248、249当前值与设置范围值相比较,当PV在SV值范围里就调用子程序。
当增值计数子程序号为0000~0049,当减值计数子程序号为F000~F0049。
当设置范围比较,它的下限必须小于它的上限。
子程序编号可以在比较表中多次使用。
范围值比较实验1:范围值没有交叉
子程序号子 范围值 目标值地址
1 1000~2000 DM100
2 2001~3000 DM200
3 3001~4000 DM300
结果是当PV值=SV值(范围值)就调用哪个子程序
范围值比较实验2:范围值有交叉
子程序号子 范围值 目标值地址
1 60~90 DM1
2 150~180 DM2
3 0~180 DM3
结果是上电之后首先执行3号子程序,当范围值为61的时候执行1号子程序,当范围值超过90就又调用3号子程序。当范围值有交叉的时候,编程序时,要考虑范围值地址排列前后位置。