台达DVP系列PLC之DVSPO指令应用
前言
今天接到一个客户的反馈情况,说使用台达DVP系列EH3的PLC自带的 API.198 DVSPO 脉冲不准。笔者我之前没有使用过这API,针对这个指令看了一下官方提供的应用手册的说明。
API指令说明
DVSPO可变脉冲输出

API引脚说明
-
S1:输出目标频率
-
S2:目标输出个数
-
S3:加减速间隔频率 (单个Word)
-
S3+1:时间频率 (单个Word)
-
D:脉冲输出装置
API相关特殊标志位和特殊寄存器
-
M1029:CH0 脉波输出完毕后,M1029=On
-
M1030:CH1 脉波输出完毕后,M1030=On
-
M1036:CH2 脉波输出完毕后,M1036=On
-
M1037:CH3 脉波输出完毕后,M1037=On
-
M1538: 显示CH0 高速输出已暂停标志
-
M1539: 显示CH1 高速输出已暂停标志
-
M1540: 显示CH2 高速输出已暂停标志
-
M1541: 显示CH3 高速输出已暂停标志
-
M1542:CH0 到达定行程频率标志
-
M1544:CH1 到达定行程频率标志
-
M1546:CH2 到达定行程频率标志
-
M1548:CH3 到达定行程频率标志
-
M1543:CH0 定行程输出完成标志
-
M1545:CH1 定行程输出完成标志
-
M1547:CH2 定行程输出完成标志
-
M1549:CH3 定行程输出完成标志
-
M1528: 启动DICF 指令执行定速输出段功能
-
M1529: 启动DICF 指令执行最终输出段功能
-
D1220: CH0(Y0,Y1)相位设置
-
D1221: CH1(Y2,Y3)相位设置
-
D1229: CH0(Y4,Y5)相位设置
-
D1230: CH0(Y6,Y7)相位设置
-
D1336: CH0 目前输出脉波个数Low word
-
D1337: CH0 目前输出脉波个数High word
-
D1338: CH1 目前输出脉波个数Low word
-
D1339: CH1 目前输出脉波个数High word
-
D1375: CH2 目前输出脉波个数Low word
-
D1376: CH2 目前输出脉波个数High word
-
D1377: CH3 目前输出脉波个数Low word
-
D1378: CH3 目前输出脉波个数High word
看完指令说明,结合魏工的思路,想到了利用以下两个API指令作为配搭,能实现 凸轮脉冲 的效果。两个指令分配是:
-
DICF(立即变更频率)
-
ABSD(绝对凸轮方式控制)
DICF

ABSD

实现功能:凸轮脉冲
变量
Class Identifiers Address Type Initial Value Comment
VAR P0_FBInst P0_FB
VAR g_b_DvspoEn M0 BOOL
VAR g_b_AxisPulse Y0 BOOL
VAR g_b_AxisPosDone M1029 BOOL
VAR g_Dw_PulseOutputTargetFrequency D0 DWORD 0
VAR g_Dw_TargetPuu D10 DWORD
VAR g_w_AccDecTime D20 ARRAY [2] OF WORD
VAR g_Dw_MasterAxisPos D1336 DWORD 0
VAR g_Dw_CamOnOffAngle D500 ARRAY [5] OF DWORD
VAR g_b_CamAngleOut M10 ARRAY [5] OF BOOL FALSE
PLC程序



Log: 2019-06-11 发布本文