文档库 最新最全的文档下载
当前位置:文档库 › codesys所有函数的详细说明

codesys所有函数的详细说明

二、模拟量标定库AnalogFilter Library

模拟量标定库就是指AnalogFilter.lib中的一些库函数。

2.1 CUT功能块

功能描述:

把输入值进行预处理,调整斜率,消除两端非线性影响。调整效果见图:

功能块如下图:

输入:(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.2 HP功能块

功能描述:

设置一个死区,把死区以内的值都设为0。功能如图:

功能块如下图:

输入:(1)Input,UINT型,输入信号。

. (2)PAR_CutLimit,UINT型,死区控制参数。当Input<=65535*PAR_CutLimit%时输出为0。

输出:(1)Output,UINT型,处理完的信号。

2.3 JoyFilter功能块

功能描述:

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,设置负向输出缓冲曲线度,手柄负向输出值相对于输入值的一个响应曲线,曲线如图:

x

(9)PAR_PosProgression,SINT型。取值范围:-100~100,设置正向输出缓冲曲线度,手柄正向输出值相对于输入值的一个响应曲线。

(10)PAR_MinErrorDifference,UINT型,取值范围:0~100,设置出错范围,当输入超出范围时,激活ErrorHigh或ErrorLow开关,并使输出为零。

(11)PAR_Fault O nDelay,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.4 JoystickAllnputOutOfRange功能块

功能描述:

本功能块是用来实现对一个模拟量输入的观察。

功能块如下图:

输入:

(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型,AIInput <

PAR_NegFull*256-PAR_MinErrorDifference,则输出为TRUE。

2.5 JoystikDirSwitchDiagnostic功能块

功能描述:

本功能块是用来观察手柄模拟量输入时微动开关的状态。

功能块如下图:

输入:

(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_Fault O nDelay,UINT型,过载延时。

输出:

(1)JoystickDirSwitchPOSMissing,BOOL型,正向微动开关出错时,值为TRUE。

(2)JoystickDirSwitchNEGMissing,BOOL型负向微动开关出错时,值为TRUE。

(3)JoystickDirSwitchPOSAndNEGOn,BOOL型,正、负向微动开关同时为TRUE 时,值为TRUE。

2.6 MeanValue功能块

功能描述:

对给的数组进行求平均数操作。

功能块如图:

输入:

(1) Input,UINT型,数据输入。

(2) PAR_Length,UINT型,取数长度,如值为5,则每5个值求一次平均值,并输出到output。

(3) Reset,BOOL型,复位信号,值为TRUE时不进行平均值运算。

输出:

(1) Output,UINT型

2.7 PedalFilter功能块

功能描述:

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.8 RC功能模块

功能描述:

RC功能块是滤波功能块,它是对传感器信号的输入信号进行滤波。滤波公式为:

z0.6

x()

y()

z.

功能块如下图:

输入:

(1) Input,UINT型,输入信号。

输出:

(1)Output,UINT型,输出信号。

2.9 Scale功能块

功能描述:

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)PosValue BOOL型,PAR_Zero * 256 > Input值,值为TRUE;PAR_Zero * 256 < Input 值,值为FALSE。

2.10 Transfer功能块

功能描述:

Transfer 模块用于设置缓冲曲线度,当Zero为TRUE时,输出为零,当Full为TRUE,而Zero不为零时,输出为65535。

缓冲曲线度公式: Y2表正向,Y3 表负向。

,00.0011progr50

x..

y()x x3

y1()x x

y2()

,x progr

,x progr1

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型

三、CANII IEC库

本库就是一些基于CAN2.0协议的一些功能块。也就是Can2.lib中的一些函数与功能块。

3.1 CAN_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.2 CAN_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.3 CAN_II_INIT函数

CAN_II设备的初始化函数。

功能块如下图:

输入:

(1)ENABLE,BOOL型,使函数可以工作。

(2)SPEED,CAN设备的波特率。

(3)GBML (GloBal Mask Long) 29bit 全球码。

(4)GBMS(GloBal Mask Short)11bit 全球码。

(5)TERM_RES CAN 的接受终端On/Off.

3.4 CAN_II_RTR函数

功能描述:

发送远距离传送请求。本函数是BOOL型的。

函数块如下图:

输入:

(1)ENABLE,BOOL型,使能。

(2)OBJ 选择对象号,1~13。

输出:

(1)ERROR,当输出为TRUE时,就是选择的对象好有问题。

3.5 CAN_II_STATUS功能块

功能描述:

本功能快就是用来返回CAN设备的状态。

功能块如下图:

输出:

(1)LEC,就是返回最近的一个出错的代码。

(2)TXOK 为TRUE时就表示传输成功。

(3)RXOK 为TRUE时就表示接受成功。

(4)EWARN_COUNT 出错记数器。

(5)BUSOFF_COUNT,总线关闭记数器。

3.6 CAN_IIRX 功能块

功能描述:

从更高的message对象来接受新的CAN信息。

功能块如下图:

输出:

(1)EXTENDED,BOOL型,扩展信息的ID位为29位。

(2)ID ,信息ID。

(3)DLC ,数据长度 1..8。

(4)DATAn ,信息数据,其中n=DLC

(5)CUSTOMER ,没有定义。

(6)NEW_DATA ,当有新的数据到了缓存中时为TRUE。

3.7 CAN_IITX功能块

功能描述:

向更高的message对象来发新的CAN信息。

功能块如下图:

输入:

(1)ENABLE,BOOL型,使能。

(2)XTENDED,BOOL型,扩展信息的ID位为29位。

(3)ID ,信息ID。

(4)DLC ,数据长度1..8。

(5)DATAn ,信息数据,其中n=DLC。

CAN2使用说明:

接收数据:1.可以采用CAN_II_BUFF_INIT和CAN_II_GET_MSG配合使用,自动将CAN 总线上ID和CAN_II_BUFF_INIT相同ID的数据自动放到相应的缓存里面,建议如果接收的数据有限的话使用CAN_II_BUFF_INIT和CAN_II_GET_MSG函数接收数据,CAN_II_BUFF_INIT应在CAN_II_INIT之前。

2.也可以只使用CAN_IIRX,但是如果使用CAN_IIRX函数必须判断接收回来的ID和我需要的ID是否相等,因为CAN_IIRX将总线上所有的数据都接收回来。

发送数据:使用CAN_IITX发送CAN数据由于发送缓存的限制,每一次最多可以发送8个不同CAN ID的数据,考虑到每次发送的可靠建议每次程序循环一次发送5个不同CAN ID 的数据。

四、CANOPEN IEC 库

下面主要介绍的是一些基于CANOPEN协议的库函数。也就是在canopen.lib中的一

些函数与功能块。

4.1 INIT FUNCTION

4.1.1 CANOPEN_END_INIT函数

功能描述:

本函数的主要作用是用来结束CANOPEN的初始化。本函数是BOOL型的。

函数块如下图:

输入:

(1)ENABLE:BOOL型,使能。

4.1.2 CANOPEN_INIT_SDO函数

功能描述:

对SDO对象开始初始化。

函数图如下:

输入:

(1)ENABLE,BOOL型,使能。

(2)ID,BYTE型。

(3)SDO_TYPE,BOOL型,FALSE时为TX型,TRUE时为RX型。

(4)SDO,BYTE 型,SDO的编号。

4.1.3 CANOPEN_START_INIT函数

功能描述:

本函数就是CANOPEN的开始初始化。本函数是BOOL型的。

函数块如下图:

输入:

(1)ENABLE,BOOL型,使能。

4.2 PDO HANDLING FUNCTIONS

4.2.1 CANOPEN_ADD_NODE_RECEIVE_FROM函数

功能描述:

增加CANOPEN接收的一个节点号(4路PDO)。本函数是BOOL型的。函数图如下:

输入:

(1)ENABLE,BOOL型。使能。

(2)PDO_TYPE_SELECT,BOOL型,PDO的类型选择,FALSE 为TPDOS型,TRUE 为RPDOS型。

(3)ID,本PDO是节点ID的。

输出:

(1)ERROR,当ID超出范围时ERROR有输出。

4.2.2 CANOPEN_ADD_RECEIVE_PDO函数

功能描述:

增加接收一路PDO。本函数是BOOL型的。

函数块如下图:

输入:

(1)ENABLE,BOOL型。使能。

(2)PDO_TYPE_SELECT,BOOL型,PDO的类型选择,FALSE 为TPDOS型,TRUE 为RPDOS型。

(3)ID,本PDO是节点ID的。

(4)PDO,BYTE型。PDO号,1~4。

输出:

(1)RROR,当ID或PDO超出范围时ERROR有输出。

4.2.3 CANOPEN_ADD_TRANSMIT_NODE_ID函数

功能描述:

虚拟CANOPEN发送的一个节点号(4路PDO)。本函数是BOOL型的。

函数图如下:

输入:

(1)ENABLE,BOOL型。使能。

(2)PDO_TYPE_SELECT,BOOL型,PDO的类型选择,FALSE 为TPDOS型,TRUE 为RPDOS型。

(3)ID,本PDO是节点ID的。

输出:

(1) ERROR,当ID超出范围时ERROR有输出。

4.2.4 CANOPEN_ADD_TRANSMIT_PDO函数

功能描述:

虚拟CANOPEN发送的一路PDO。本函数是BOOL型的。

函数图如下:

输入:

(1)EABLE,BOOL型。使能。

(2)PDO_TYPE_SELECT,BOOL型,PDO的类型选择,FALSE 为TPDOS型,TRUE 为RPDOS型。

(2)ID,本PDO是节点ID的。

(3)PDO,BYTE型。PDO号,1~4。

输出:

(1)ERROR,当ID或PDO超出范围时ERROR有输出。

4.3 SDO HANDLING FUNCTIONS

4.3.1 ADD_VERSION函数

功能描述:

把用户的串放入CANOPEN的版本对象中去(16#100A)。本函数是BOOL型的。函数图如下:

输入:

(1)ENABLE,BOOL型,使能。

(2)VER,STRING型,用户定义的串。

4.3.2 CANOPEN_GET_SDO函数

功能描述:

CANOPEN接收一个SDO。本函数是BOOL型的。

函数图如下:

输入:

(1)ENABLE,BOOL型,使能。

(2)SDO,BYTE型,SDO号。

(3)INDEX,WORD型,对象的索引号。

(4)SUBINDEX,WORD型,对象的子索引号。

(5)OFFSET,BYTE型,数据在接受时的偏移量。

4.3.3 CANOPEN_POINTER_SHARE函数

功能描述:

把用户定义的变量通过CANOPEN总线,用SDO对象发在总线上。本函数是BOOL 型的。

函数如下图:

输入:

(1)ENABLE,BOOL型,使能。

(2)OUT,DWORD型,用户要放的变量。它是一个指针操作。

(3)Length,BYTE型,所用的对象的长度。

(4)Size,BYTE型,所用的对象的长度。

4.3.4 CANOPEN_PUT_SDO函数

功能描述:

向网络上的一个节点发送一个SDO。本函数是BOOL型的

函数块如下图:

输入:

(1)ENABLE,BOOL型,使能。

(2)SDO,BYTE型,SDO号。

(3)INDEX,WORD型,对象的索引号。

(4)SUBINDEX,WORD型,对象的子索引号。

(5)OFFSET,BYTE型,数据在接受时的偏移量。

(6)LENGTH,BYTE型,SDO对象的长度。

4.3.5 CANOPEN_SHARE函数

功能描述:

把用户定义的串通过CANOPEN总线,用SDO对象发在总线上。本函数是BOOL型的。

函数块如下图:

输入:

(1)ENABLE,BOOL型,使能。

(2)OUT,STRING型,用户定义的串。

(3)Length,BYTE型,所用的对象的长度。

(4)Size,BYTE型,所用的对象的长度。

4.3.6 CANOPEN_UPDATA_SHARE函数

功能描述:

把用户定义的串通过CANOPEN总线,用SDO对象发在总线上。本函数是BOOL型的。

函数图如下:

输入:

(1)ENABLE,BOOL型,使能。

(2)OUT,STRING型,用户定义的串。

(3)share_no,BYTE型,哪一个要更新。

(4)subindex,BYTE型,哪一个地方要更新。

4.4 state中的函数与功能块

4.4.1 CANOPEN_DIAGNOSE功能块

功能描述:

给出CAN以及程序循环的有关信息。

功能块如下图:

输出:

(1)BUS_OFF_COUNT,BYTE型,总线关闭记数。

(2)EWARN_COUNT,BYTE型,错误与警告的数量。

(3)TXBUFF_FULL_COUNT,BYTE型,记CAN设备传输缓冲区满的次数。

(4)CYCLE_TIME,BYTE型,程序最后一个循环所用的时间,单位是毫秒。

(5)HIGH_CYCLE_TIME,BYTE型,程序一个循环所用的最大时间,单位是毫秒。

(6)CTRLOOP_COUNT,DWORD型,程序循环记数。

4.4.2 CANOPEN_IS_THIS_MASTER函数

功能描述:

给出本节点是不是主节点。本函数是BOOL型的。Master/ Slave 对应True/False。

函数图如下:

输出:

(1)YES,BOOL型,Master/ Slave 对应True/False。

4.4.3 CANOPEN_NODE_STATE功能块

功能描述:

本功能块给出了本节点的当前操作状态信息。

功能块如下图:

输出:

(1)NODEID,BYTE型,单元本身的ID号。

(2)DUMMY,BOOL型,单元是否是虚拟的。

(3)DISCONNECTED,BOOL型,单元是否没有连接在总线上。

(4)CONNECTING,BOOL型,单元是否连接在总线上。

(5)PREPARING,BOOL型,单元是否准备好。

(6)PREPARED,BOOL型,设备停止,准备运行。

(7)OPERATIONAL,BOOL型,CanOpen 设备正在运行。

(8)ERROR,BOOL型,不是当前操作的状态,是上一个操作的状态。

4.4.4 CANOPEN_START_NODES函数

功能描述:

启动CANOPEN从设备。

函数图如下:

输入:

(1)ENABLE,BOOL型,使能。

五、CELL_CHECK_4 库

CELL_CHECK_4库就是CELL_CHECK_4.lib库文件中的功能块。本库中就只有CELL_CHECK_4一个功能块。

功能描述:

本功能块主要是一个脉冲检测功能块。当输入的脉冲信号必须在150个程序循环中

有所改变,此时ALLUP输出为TRUE,否则为FALSE。

函数图如下:

输入:

(1)HeartB1,BOOL型,要检测的脉冲信号1。

(2)HeartB2,BOOL型,要检测的脉冲信号2。

(3)HeartB3,BOOL型,要检测的脉冲信号3。

(4)HeartB4,BOOL型,要检测的脉冲信号4。

输出:

(1)ALLUp,BOOL型,输出检测结果的信号。

(2)HB_Send,BOOL型,功能块本身的脉冲信号。

(3)HBTime_1,USINT型,对于信号1的程序循环记数器,当本记数器的值大于150时ALLUp输出为FALSE,否则为TRUE。

(4)HBTime_2,USINT型,对于信号2的程序循环记数器,当本记数器的值大于150时ALLUp输出为FALSE,否则为TRUE。

(5)HBTime_3,USINT型,对于信号3的程序循环记数器,当本记数器的值大于150时ALLUp输出为FALSE,否则为TRUE。

(6)HBTime_4,USINT型,对于信号4的程序循环记数器,当本记数器的值大于150时ALLUp输出为FALSE,否则为TRUE。

六、HW库

HW库也就是指的是在hw_n.lib文件中的一些功能块。

6.1 CONFIGURE_PI功能块

功能描述:

脉冲输入设置,它是通过比较A,B两个通道输入的脉冲信号来给出一个正转或反转的数值。如果只计算单脉冲输入,CONFIGURE_PI的CHANNEL A等于相应的值,CHANNEL B 的值设置为16。如果是要计算正反转,A相输入和B相输入相位差90度,则CHANNEL A

相关文档