Codesys标准函数说明.docx
《Codesys标准函数说明.docx》由会员分享,可在线阅读,更多相关《Codesys标准函数说明.docx(56页珍藏版)》请在冰豆网上搜索。
Codesys标准函数说明
一、标准库函数StandardLibrary
标准库函数就是STANDARD.LIB中的一些常用的函数。
1.1双稳功能块BistableFunctionBlocks
1.1.1SR功能块
功能描述:
本功能块是对变量进行置位与复位。
也就是说等同与PLC中的SET与RESET命令。
当SET1为TRUE是则输出Q1置位,值为TRUE并保持。
当RESET为TRUE时复位,值为FALSE并保持。
注意:
当SET1与RESET同时为TRUE时输出为FALSE。
(RS功能块此时为TRUE)
功能块如下图:
输入:
SET1,BOOL型
RESET,BOOL型
输出:
Q1,BOOL型
1.1.2RS功能块
功能描述:
本功能块的主要功能同SR块。
也是用来实现置位与复位的功能。
当SET为TRUE是则输出Q1置位,值为TRUE并保持。
当RESET1为TRUE时复位,值为FALSE并保持。
注意:
当SET与RESET1同时为真时输出为TRUE。
(SR功能块此时为FALSE)
功能块如下图:
输入:
SET,BOOL型
RESET1,BOOL型
输出:
Q1,BOOL型
1.1.3SEMA功能块
功能描述:
本功能块的主要功能同SR块。
也是用来实现置位与复位的功能。
当CLAIM为TRUE时输出为TRUE。
当RELEASE为TRUE时输出为FALSE。
当两者同是为TRUE是输出为FALSE。
本功能块与SR以及RS功能块的最大的不同就是本功能块是同过一个内部变量X来传递值的。
语句如下:
BUSY:
=X;
IFCLAIMTHENX:
=TRUE;
ELSEIFRELEASETHENBUSY:
=FALSE;X:
=FALSE;
END_IF
功能块如下图:
输入:
CLAIM,BOOL型
RELEASE,BOOL型
输出:
BUSY,BOOL型
1.2计数器功能块Counter
1.2.1CTD功能块
功能描述:
本功能块是自减记数器。
也就是说当信号由低电频变为高电频时进行自减记数。
其中CD是输入信号,LOAD是初始化信号,也就是说当LOAD输入为TRUE时功能块开始工作。
PV是初始化记数值,也就上通过PV来初始化CV的值。
当每有一个输入信号时,则CV减一,直到CV减到0时输出Q有输出为TRUE。
功能块如下图:
输入:
CD,BOOL型
LOAD,BOOL型
PV,INT型
输出:
Q,BOOL型
CV,INT型
1.2.2CTU功能块
功能描述:
本功能块是自加记数器。
也就是说当信号由低电频变为高电频时进行加一记数。
其中CU是输入信号,RESET是复位信号,也就是说当LOAD输入为TRUE时功能块复位。
CV是当时记数值。
当每有一个输入信号时,则CV加一,直到CV加到CV=PV时输出Q有输出为TRUE。
功能块如下图:
输入:
CU,BOOL型
RESET,BOOL型
PV,INT型
输出:
Q,BOOL型
CV,INT型
1.2.3CTUD功能块
功能描述:
本功能块是一个可以进行自减也可以进行自加的功能块,也就是说它整合了前面两个功能块的功能。
当输入用CU、RESET及PV,也就是说当RESET有一个信号,则CV会被初始化为0,此时功能块是用作为自加计数器,对CU进行记数。
当CV=PV时在QU端有输出。
功能同CTU功能块。
当LOAD有一个信号时,则CV会被初始化为PV,此时本功能块会被用作为一个自减计数器。
当有输入时则CV减一,当CV=0是QD有输出。
功能块如下图:
输入:
CU,BOOL型
CD,BOOL型
RESET,BOOL型
LOAD,BOOL型
PV,INT型
输出:
QU,BOOL型
QD,BOOL型
CV,INT型
1.3字符串操作函数StringFunctions
1.3.1CONCAT函数
功能描述:
这是一个串连接函数。
它的主要功能就是把两个输入串连成一个串。
函数块如下图:
输入:
STR1,STRING型
STR2,STRING型
输出:
由于功能块与函数的区别,函数的输出即返回值是用户自己定义的变量,是STRING型。
1.3.2DELETE函数
功能描述:
本函数是从给定的串中删除给定位置开始的字符串。
STR是输入串,LEN是要删除的长度,POS是开始的位置。
函数块如下图:
输入:
STR,STRING型
LEN,INT型
POS,INT型
输出:
完成操作后的串,STRING型
1.3.3FIND函数
功能描述:
本函数就是在给定的串中查找所要查的串的位置。
给出第个一个字符的位置。
函数块如下图:
输入:
STR1,STRING型
STR2,STRING型
输出:
STR2首字符在STR1中的位置。
INT型
1.3.4INSERT函数
功能描述:
本函数就是在串的给定的位置中插入一个串。
STR2串插入STR1中的POS位置。
函数块如下图:
输入:
STR1,STRING型
STR2,STRING型
POS,INT型
输出:
完成操作后的串,STRING型
1.3.5LEFT函数
功能描述:
从给定的串的左开始取字符串SIZE位。
函数块如下图:
输入:
STR,STRING型
SIZE,INT型
输出:
完成操作后的串,STRING型
1.3.6LEN函数
功能描述:
计算字符串的长度。
函数块如下图:
输入:
STR,STRING型
输出:
给定的字符串的长度,INT型
1.3.7MID函数
功能描述:
取给定的字符串的第POS位开始的LEN位。
函数块如下图:
输入:
STR,STRING型
LEN,INT型
POS,INT型
输出:
完成操作后的串,STRING型
1.3.8REPLACE函数
功能描述:
把STR1中第P位开始的L位替换成STR2。
函数块如下图:
输入:
STR1,STRING型
STR2,STRING型
L,INT型
P,INT型
输出:
完成操作后的串,STRING型
1.3.9RIGHT函数
功能描述:
从给定的串的右开始取字符串SIZE位。
函数块如下图:
输入:
STR,STRING型
SIZE,INT型
输出:
完成操作后的串,STRING型
1.4定时器功能块Timer
1.4.1RTC功能块
功能描述:
当输入为TRUE时,则把PDT的时间付给CDT同时CDT开始记时,输出Q为TRUE。
当输入EN为假是CDT为默认时间。
功能块如下图:
输入:
EN,BOOL型
PDT,DT型
输出:
Q,BOOL型
CDT,DT型
1.4.2TOF功能块
功能描述:
当输入IN由高电频变为低电频时开始记时,当ET记时达到给定的时间PT时,输出由高电频变为低电频。
功能块如下图:
输入:
IN,BOOL型
PT,TIME型
输出:
Q,BOOL型
ET,TIME型
1.4.3TON功能块
功能描述:
当输入IN由低电频变为高电频时开始记时,当ET记时达到给定的时间PT时,输出由低电频变高低电频。
功能块如下图:
输入:
IN,BOOL型
PT,TIME型
输出:
Q,BOOL型
ET,TIME型
1.4.4TP功能块
功能描述:
使输入的信号IN保持PT时间,也就是说当有输入是输出Q就为TRUE,同时保持,此时ET开始记时,当ET=PT是,输出变为FALSE,同时保持。
功能块如下图:
输入:
IN,BOOL型
PT,TIME型
输出:
Q,BOOL型
ET,TIME型
1.5触发保持功能块Trigger
1.5.1F_TRIG功能块
功能描述:
输入每有一个由高电频向低电频的跳变时输出Q就有一个输出TRUE。
功能块如下图:
输入:
CLK,BOOL型
输出:
Q,BOOL型
1.5.2R_TRIG功能块
功能描述:
输入每有一个由低电频向高电频的跳变时输出Q就有一个输出TRUE。
功能块如下图:
输入:
CLK,BOOL型
输出:
Q,BOOL型
二、模拟量标定库AnalogFilterLibrary
模拟量标定库就是指AnalogFilter.lib中的一些库函数。
2.1CUT功能块
功能描述:
把输入值进行预处理,调整斜率,消除两端非线性影响。
调整效果见图:
功能块如下图:
输入:
(1)Input,UINT型,要处理的信号。
(2)PAR_InputILowLimit,UINT型,用来控制输出的下限。
当Input<=256*PAR_InputILowLimit时输出为0。
(3)PAR_InputHighLimit,UINT型,用来控制输出的上限。
当Input>=256*PAR_InputHighLimit时输出就为0。
输出:
(1)Output,UINT型,处理完的信号。
(2)LowLimit,BOOL型,Input<=256*PAR_InputILowLimit时LowLimit为TRUE。
(3)HighLimit,BOOL型,Input>=256*PAR_InputHighLimit时HighLimit为TRUE。
2.2HP功能块
功能描述:
设置一个死区,把死区以内的值都设为0。
功能如图:
功能块如下图:
输入:
(1)Input,UINT型,输入信号。
.
(2)PAR_CutLimit,UINT型,死区控制参数。
当Input<=65535*PAR_CutLimit%时输出为0。
输出:
(1)Output,UINT型,处理完的信号。
2.3JoyFilter功能块
功能描述:
JoyFilter块是一个双向的模拟量标定块,也就是说它对输入的模拟量进行预处理,把输出范围调整为-32767~32767。
功能块如下图:
输入:
(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也为负向最大。
(5)PAR_POSFull,UINT型,正向输入的调节参数。
取值范围:
0~255,主要用于当正向输入最大时,调节参数使得OUTPUT也正负向最大。
(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开关,并使输出为零。
(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_PosFull*256+PAR_MinErrorDifference,则输出为TRUE。
(2)ErrorInputTooLowOut,BOOL型,AIInput2.5JoystikDirSwitchDiagnostic功能块
功能描述:
本功能块是用来观察手柄模拟量输入时微动开关的状态。
功能块如下图:
输入:
(1)AnalogInput,UINT型,需要观察的模拟量信号。
(2)DI_JoystickDirSwitchPOS,BOOL型,正向微动开关。
当PAR_DirSwitchDiagnosticNotUse为FALSE时,此时又手柄向正向移动,那么只有正向微动开关TRUE,OUTPUT才会有输出。
(3)DI_JoystickDirSwitchNEG,BOOL型,负向微动开关。
当PAR_DirSwitchDiagnosticNotUse为FALSE时,此时又手柄向负向移动,那么只有负向微动开关TRUE,OUTPUT才会有输出。
(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。
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型,取值范围:
0~100,设置出错范围,当输入超出范围时,激活ErrorHigh或ErrorLow开关,并使输出为零。
(7)OutputEnable,BOOL型,使能开关。
输出:
(1)Output,UINT型,取值范围:
0~65535,输出信号。
(2)ErrorHigh,BOOL型,高位出错开关。
输入>PAR_Full+PAR_MinErrorDifference范围,ErrorHigh为TRUE,并把输出置零。
(3)ErrorLow,BOOL型,低位出错开关,输入2.8RC功能模块
功能描述:
RC功能块是滤波功能块,它是对传感器信号的输入信号进行滤波。
滤波公式为:
功能块如下图:
输入:
(1)Input,UINT型,输入信号。
输出:
(1)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
2.10Transfer功能块
功能描述:
Transfer模块用于设置缓冲曲线度,当Zero为TRUE时,输出为零,当Full为TRUE,而Zero不为零时,输出为65535。
缓冲曲线度公式:
Y2表正向,Y3表负向。
曲线如下图:
功能块如下图:
输入:
(1)Input,UINT型
(2)Zero,BOOL型,当Zero为TRUE时,输出为零。
(3)Full:
BOOL型,当Full为TRUE,而Zero不为零时,输出为65535。
(4)PAR_Progression,INT型,曲线度设置参数。
(5)OutputEnable,BOOL型,当此参数值为TRUE时,模块按预定算法执行;为FALSE时,保持上一次输出
输出:
(1)Output,UINT型
三、CANIIIEC库
本库就是一些基于CAN2.0协议的一些功能块。
也就是Can2.lib中的一些函数与功能块。
3.1CAN_II_BUFF_INIT函数
功能描述:
本功能块的主要作用是用来初始化CAN接受信息对象的。
注意CAN_II_BUFF_INIT,必须用在CAN_II_INIT前面。
本函数是BOOL型的。
函数块如下图:
输入:
(1)ENABLE,BOOL型。
函数的使能变量。
(2)OBJ,对象号,输入数值,1~14,0是用来传输的号。
(3)ID,信息ID,11或29位ID。
(4)EXTENDED,BOOL型,用来扩展ID为29位。
输出:
(1)ERROR,BOOL型。
当OBJ超出范围时有输出。
3.2CAN_II_GET_MSG功能块
功能描述:
当CAN总线上有新的CAN信息是接受数据。
功能块如下图:
输入:
(1)ESSAGE,用户想接受的信息。
输出:
(1)EXTENDED,BOOL型,当信息ID为29位时为TRUE。
(2)ID,信息的ID。
(3)DLC,信息的长度。
(4)DATAn,信息的数据,其中n=DLC。
(5)CUSTOMER,没有定义。
(6)NEW_DATA,BOOL型,当缓存中有新的数据时为TRUE。
3.3CAN_II_INIT函数
功能描述:
CAN_II设备的初始化函数。
功能块如下图:
输入:
(1)ENABLE,BOOL型,使函数可以工作。
(2)SPEED,CAN设备的波特率。
(3)GBML(GloBalMaskLong)29bit全球码。
(4)GBMS(GloBalMaskShort)11bit全球码。
(5)TERM_RESCAN的接受终端On/Off.
3.4CAN_II_RTR函数
功能描述:
发送远距离传送请求。
本函数是BOOL型的。
函数块如下图:
输入:
(1)ENABLE,BOOL型,使能。
(2)OBJ选择对象号,1~13。
输出:
(1)ERROR,当输出为TRUE时,就是选择的对象好有问题。
3.5CAN_II_STATUS功能块
功能描述:
本功能快就是用来返回CAN设备的状态。
功能块如下图:
输入:
无
输出:
(1)LEC,就是返回最近的一个出错的代码。
(2)TXOK为TRUE时就表示传输成功。
(3)RXOK为TRUE时就表示接受成功。
(4)EWARN_COUNT出错记数器。
(5)BUSOFF_COUNT,总线关闭记数器。
3.6CAN_IIRX功能块
功能描述:
从更高的message对象来接受新的CAN信息。
功能块如下图:
输出:
(1)EXTENDED,BOOL型,扩展信息的ID位为29位。
(2)ID,信息ID。
(3)DLC,数据长度1..8。
(4)DATAn,信息数据,其中n=DLC
(5)CUSTOMER,没有定义。
(6)NEW_DATA,当有新的数据到了缓存中时为TRU