ANALOGFILTER库函数说明Word文档下载推荐.docx
《ANALOGFILTER库函数说明Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《ANALOGFILTER库函数说明Word文档下载推荐.docx(46页珍藏版)》请在冰豆网上搜索。
*)
2.2HP功能块
设置一个死区,把死区以内的值都设为0。
功能如图:
(1)Input,UINT型,输入信号。
.
(2)PAR_CutLimit,UINT型,死区控制参数。
当Input<
=256*PAR_CutLimit时输出为0。
(*HP和CUT有一些类似,当INPUT<
=PAR_CutLimit*256,输出OUTPUT为0,当PAR_CutLimit*256<
65535,OUTPUT输出0~65535*)
2.3JoyFilter功能块
JoyFilter块是一个双向的模拟量标定块,也就是说它对输入的模拟量进行预处理,把输出范围调整为-32767~32767。
16位
(1)AnalogInput,UINT型,模拟量的输入信号。
(2)DI_JoystickDirSwitchPOS,BOOL型,正向微动开关。
当PAR_DirSwitchDiagnosticNotUse为FALSE时,此时又手柄向正向移动,那么只有正向微动开关TRUE,OUTPUT才会有输出。
(3)DI_JoystickDirSwitchNEG,BOOL型,负向微动开关。
当PAR_DirSwitchDiagnosticNotUse为FALSE时,此时又手柄向负向移动,那么只有负向微动开关TRUE,OUTPUT才会有输出。
(4)PAR_NegFull,UINT型,负向输入的调节参数。
取值范围:
0~255,主要用于当负向输入最大时,调节参数使得OUTPUT也为负向最大。
当AnalogInput<
=PAR_NegFull*256,Output=0,ErrorLow=TRUE,说明手柄已经超过负向允许最小值
(5)PAR_POSFull,UINT型,正向输入的调节参数。
0~255,主要用于当正向输入最大时,调节参数使得OUTPUT也正负向最大。
当AnalogInput>
=PAR_PosFull*256,Output=0,ErrorHigh=TRUE,说明手柄已经超过正向允许最大值
(6)PAR_Zero,UINT型,零输入的调节参数。
0~255,主要用于当手柄在零位时,即零输入时,调节参数使得OUTPUT也为零。
(7)PAR_DeadBand,UINT型死区设置参数。
0~100。
当输入进入参数设置范围,输出为零
(8)PAR_NegProgression,SINT型。
-100~100,设置负向输出缓冲曲线度,手柄负向输出值相对于输入值的一个响应曲线,曲线如图:
(9)PAR_PosProgression,SINT型。
-100~100,设置正向输出缓冲曲线度,手柄正向输出值相对于输入值的一个响应曲线。
(10)PAR_MinErrorDifference,UINT型,取值范围:
0~100,设置出错范围,当输入超出范围时,激活ErrorHigh或ErrorLow开关,并使输出为零。
当AnalogInput>
PAR_PosFull*256*(1+PAR_MinErrorDifference)正向出错报警
当AnalogInput<
PAR_NegFull*256*(1-PAR_MinErrorDifference)负向出错报警
(11)PAR_FaultOnDelay,UINT型,取值范围:
0~255,过载延时。
(12)PAR_DirSwitchDiagnosticNotUse,BOOL型,此参数为TRUE时,微动开关无效,为FALSE时,微动开关有效
(1)OutputEable,BOOL型,输出使能,为TRUE是块才会有输出。
(2)Output,INT型,调整后的信号量,输出数值范围-32767~32767
(3)ErrorHigh,BOOL型,当输入超出PAR_Full+5000范围时,ErrorHigh为TRUE,输出置零。
(4)ErrorLow,BOOL型,输入超出PAR_Zero–PAR_MinErrorDifference范围,ErrorHigh为TRUE,并把输出置零。
(5)JoystickDirSwitchPOSMissing,BOOL型,正向微动开关出错时,值为TRUE。
(6)JoystickDirSwitchNEGMissing,BOOL型负向微动开关出错时,值为TRUE。
(7)JoystickDirSwitchPOSAndNEGOn,BOOL型,正、负向微动开关同时为TRUE时,值为TRUE。
2.4JoystickAllnputOutOfRange功能块
本功能块是用来实现对一个模拟量输入的观察。
(1)Allnput,UINT型,需要观察的模拟量信号。
(2)PAR_PosFull,UINT型,正向最大调整参数。
(3)PAR_NegFull,UINT型,负向最大调整参数。
(4)PAR_MinErrorDifference,UINT型,设置出错范围,当输入超出范围时,激活ErrorInputTooHighOut或ErrorInputTooLowOut开关,并使输出为零。
(1)ErrorInputTooHighOut,BOOL型,AIInput+PAR_MinErrorDifference>
PAR_PosFull,则输出为TRUE。
(2)ErrorInputTooLowOut,BOOL型,AIInput+PAR_MinErrorDifference<
PAR_NegFull,则输出为TRUE。
(*判断手柄AD转换值是否超过设定的上限和下限,用户可以通过在模拟状态下自己修改Allnput的值来实际理解该函数的用法*)
2.5JoystikDirSwitchDiagnostic功能块
本功能块是用来观察手柄模拟量输入时微动开关的状态。
AnalogInput,UINT型,需要观察的模拟量信号。
(4)PAR_PosFull,UINT型,正向最大调整参数。
(5)PAR_NegFull,UINT型,负向最大调整参数。
(6)PAR_Zero,UINT型,零输入的调节参数。
主要用于当手柄在零位时,即零输入时,调节参数使得OUTPUT也为零。
(7)PAR_FaultOnDelay,UINT型,过载延时。
(1)JoystickDirSwitchPOSMissing,BOOL型,正向微动开关出错时,值为TRUE。
(2)JoystickDirSwitchNEGMissing,BOOL型负向微动开关出错时,值为TRUE。
(3)JoystickDirSwitchPOSAndNEGOn,BOOL型,正、负向微动开关同时为TRUE时,值为TRUE。
(*判断手柄正向负向些微开关是否损坏,用户可以自己修改AnalogInput的值和将两个限位开关的输入变量改为变量,在模拟调试状态下修改各自的值来理解这个函数的用法。
2.6MeanValue功能块
对给的数组进行求平均数操作。
功能块如图:
(1)Input,UINT型,数据输入。
(2)PAR_Length,UINT型,取数长度,如值为5,则每5个值求一次平均值,并输出到output。
(3)Reset,BOOL型,复位信号,值为TRUE时不进行平均值运算。
(1)Output,UINT型
2.7PedalFilter功能块
PedalFilter功能块是一个单向的标定模块,主要用于把输入模拟量进行预处理,把输出量范围调整到0~65535。
(1)AbalogInput,UINT型,来自于传感器的输入量
OutPutEnable,BOOL型,使能开关。
参数值为TRUE时,模块按当前值输出;
为FALSE时,保持上一次输出值。
(2)PAR_Full,UINT型,取值范围:
0~255,此参数用于调整最大输出值,当输入最大时,使输出接近65535,小于65535。
(3)PAR_Zero,INT型,取值范围:
0~255,此参数用于调整零位,使输出为零。
(4)PAR_DeadBand,UINT型,取值范围:
0~100,设置死区,当输入进入参数设置范围,输出为零。
(5)PAR_Progression,SINT型,取值范围:
-100~100设置输出缓冲曲线度。
(6)PAR_MinErrorDifference,UINT型,取值范围:
(7)OutputEnable,BOOL型,使能开关。
(1)Output,UINT型,取值范围:
0~65535,输出信号。
(2)ErrorHigh,BOOL型,高位出错开关。
输入超出PAR_Full+PAR_MinErrorDifference范围,ErrorHigh为TRUE,并把输出置零。
(3)ErrorLow,BOOL型,低位出错开关,输入超出PAR_Zero–PAR_MinErrorDifference范围,ErrorHigh为TRUE,并把输出置零。
2.8RC功能模块
RC功能块是滤波功能块,它是对传感器信号的输入信号进行滤波。
滤波公式为:
(1)Input,UINT型,输入信号。
Output,UINT型,输出信号。
2.9Scale功能块
Scale功能块的主要作用是把一个0~65535量变换成为两个0~65535的量,如下图:
(1)Input,UINT型
(2)PAR_Zero,INT型,设置零位,当输入为PAR_Zero*256时,输出为0。
(3)PAR_PosFull,UINT型,当input值>
=PAR_PosFull*256时,输出为65535,PosValue为TRUE。
(4)PAR_NegFull,UINT型,当input值<
=PAR_NegFull*256,输出为-65535,PosValue为FALSE。
(1)Output,UINT型
(2)PosValueBOOL型,PAR_Zero*256>
Input值,值为TRUE;
PAR_Zero*256<
Input值,值为FALSE。
2.10Transfer功能块
Transfer模块用于设置缓冲曲线度,当Zero为TRUE时,输出为零,当Full为TRUE,而Zero不为零时,输出为65535。
缓冲曲线度公式:
Y2表正向,Y3表负向。
曲线如下图:
(2)Zero,BOOL型,当Zero为TRUE时,输出为零。
(3)Full:
BOOL型,当Full为TRUE,而Zero不为零时,输出为65535。
(4)PAR_Progression,INT型,曲线度设置参数。
(5)OutputEnable,BOOL型,当此参数值为TRUE时,模块按预定算法执行;
为FALSE时,保持上一次输出
三、CANIIIEC库
本库就是一些基于CAN2.0协议的一些功能块。
也就是Can2.lib中的一些函数与功能块。
3.1CAN_II_BUFF_INIT函数
本功能块的主要作用是用来初始化CAN接受信息对象的。
注意CAN_II_BUFF_INIT,必须用在CAN_II_INIT前面。
本函数是BOOL型的。
函数块如下图:
ENABLE,BOOL型。
函数的使能变量。
OBJ,对象号,输入数值,1~14,0是用来传输的号。
ID,信息ID,11或29位ID。
EXTENDED,BOOL型,用来扩展ID为29位。
ERROR,BOOL型。
当OBJ超出范围时有输出。
(*OBJ:
为1~14,ID为接收CAN数据的验收码,EXTENDED:
选择扩展格式还是标准格式
CAN_II_BUFF_INIT函数和CAN_II_GET_MSG函数成对使用,OBJ参数值就是调用CAN_II_GET_MSG的MESSAGE值
接收CAN数据可以采用CAN_II_BUFF_INIT函数和CAN_II_GET_MSG函数成对使用,也可以只使用CAN_IIRX,但是如果使用CAN_IIRX函数必须判断接收回来的ID和我需要的ID是否相等,因为CAN_IIRX将总线上所有的数据都接收回来。
而CAN_II_BUFF_INIT函数和CAN_II_GET_MSG函数成对使用的话会自动将CAN总线上ID和CAN_II_BUFF_INIT相同ID的数据自动放到相应的缓存里面,建议如果接收的数据有限的话使用CAN_II_BUFF_INIT和CAN_II_GET_MSG函数接收数据*)
3.2CAN_II_GET_MSG功能块
当CAN总线上有新的CAN信息是接受数据。
MESSAGE,用户想接受的信息。
EXTENDED,BOOL型,当信息ID为29位时为TRUE。
ID,信息的ID。
DLC,信息的长度。
DATAn,信息的数据,其中n=DLC。
CUSTOMER,没有定义。
NEW_DATA,BOOL型,当缓存中有新的数据时为TRUE。
3.3CAN_II_INIT函数
CAN_II设备的初始化函数。
ENABLE,BOOL型,使函数可以工作。
SPEED,CAN设备的波特率。
GBML(GloBalMaskLong)29bit全球码。
GBMS(GloBalMaskShort)11bit全球码。
TERM_RESCAN的接受终端On/Off.
(*SPEED:
CAN2通讯波特率,可以为10K,20k,50k,75k,100k,125k,250k,500k,1000k
GBML:
为扩展29位屏蔽码,GBMS:
为标准11位的屏蔽码,TERM_RES:
是否打开终端电阻*)
3.4CAN_II_RTR函数
发送远距离传送请求。
本函数是BOOL型的。
ENABLE,BOOL型,使能。
OBJ选择对象号,1~13。
ERROR,当输出为TRUE时,就是选择的对象有问题。
3.5CAN_II_STATUS功能块
本功能快就是用来返回CAN设备的状态。
无
LEC,就是返回最近的一个出错的代码。
TXOK为TRUE时就表示传输成功。
RXOK为TRUE时就表示接受成功。
EWARN_COUNT出错记数器。
BUSOFF_COUNT,总线关闭记数器。
3.6CAN_IIRX功能块
从更高的message对象来接受新的CAN信息。
EXTENDED,BOOL型,扩展信息的ID位为29位。
ID,信息ID。
DLC,数据长度1..8。
DATAn,信息数据,其中n=DLC
CUSTOMER,没有定义。
NEW_DATA,当有新的数据到了缓存中时为TRUE。
3.7CAN_IITX功能块
向更高的message对象来发新的CAN信息。
(1)ENABLE,BOOL型,使能。
(2)XTENDED,BOOL型,扩展信息的ID位为29位。
(3)ID,信息ID。
(4)DLC,数据长度1..8。
(5)DATAn,信息数据,其中n=DLC。
四、CANOPENIEC库
下面主要介绍的是一些基于CANOPEN协议的库函数。
也就是在canopen.lib中的一些函数与功能块。
4.1INITFUNCTION
4.1.1CANOPEN_END_INIT函数
本函数的主要作用是用来结束CANOPEN的初始化。
ENABLE:
BOOL型,使能。
4.1.2CANOPEN_INIT_SDO函数
对SDO对象开始初始化。
函数图如下:
ID,BYTE型。
SDO_TYPE,BOOL型,FALSE时为TX型,TRUE时为RX型。
SDO,BYTE型,SDO的编号。
4.1.3CANOPEN_START_INIT函数
本函数就是CANOPEN的开始初始化。
4.2PDOHANDLINGFUNCTIONS
4.2.1CANOPEN_ADD_NODE_RECEIVE_FROM函数
增加CANOPEN接收的一个节点号(4路PDO)。
使能。
PDO_TYPE_SELECT,BOOL型,PDO的类型选择,FALSE为TPDOS型,TRUE为RPDOS型。
ID,本PDO是节点ID的。
ERROR,当ID超出范围时ERROR有输出。
4.2.2CANOPEN_ADD_RECEIVE_PDO函数
增加接收一路PDO。
PDO,BYTE型。
PDO号,1~4。
RROR,当ID或PDO超出范围时ERROR有输出。
4.2.3CANOPEN_ADD_TRANSMIT_NODE_ID函数
虚拟CANOPEN发送的一个节点号(4路PDO)。
(1)ERROR,当ID超出范围时ERROR有输出。
4.2.4CANOPEN_ADD_TRANSMIT_PDO函数
虚拟CANOPEN发送的一路PDO。
(1)EABLE,BOOL型。
(2)PDO_TYPE_SELECT,BOOL型,PDO的类型选择,FALSE为TPDOS型,TRUE为RPDOS型。
ID,本PDO是节点ID的。
(3)PDO,BYTE型。
ERROR,当ID或PDO超出范围时ERROR有输出。
4.3SDOHANDLINGFUNCTIONS
4.3.1ADD_VERSION函数
把用户的串放入CANOPEN的版本对象中去(16#100A)。
VER,STRING型,用户定义的串。
4.3.2CANOPEN_GET_SDO函数
CANOPEN接收一个SDO。
SDO,BYTE型,SDO号。
INDEX,WORD型,对象的索引号。
SUBINDEX,WORD型,对象的子索引号。
OFFSET,BYTE型,数据在接受时的偏移量。
4.3.3CANOPEN_POINTER_SHARE函数
把用户定义的变量通过CANOPEN总线,用SDO对象发在总线上。
函数如下图:
OUT,DWORD型,用户要放的变量。
它是一个指针操作。
Length,BYTE型,所用的对象的长度。
Size,BYTE型,所用的对象的长度。
4.3.4CANOPEN_PUT_SDO函数
向网络上的一个节点发送一个SDO。
本函数是BOOL型的
(2)SDO,BYTE型,SDO号。
(3)INDEX,WORD型,对象的索引号。
(4)SUBINDEX,WORD型,对象的子索引号。
O