1、(完整版)codesys所有函数的详细说明二、模拟量标定库AnalogFilter Library模拟量标定库就是指AnalogFilter。lib中的一些库函数。2.1 CUT功能块功能描述:把输入值进行预处理,调整斜率,消除两端非线性影响。调整效果见图:功能块如下图:输入:(1)Input,UINT型,要处理的信号。 (2)PAR_InputILowLimit,UINT型,用来控制输出的下限。 当Input=256PAR_InputHighLimit时HighLimit为TRUE。2.2 HP功能块功能描述:设置一个死区,把死区以内的值都设为0。功能如图:功能块如下图: 输入:(1)Inp
2、ut,UINT型,输入信号。. (2)PAR_CutLimit,UINT型,死区控制参数。当Input=65535*PAR_CutLimit%时输出为0。输出:(1)Output,UINT型,处理完的信号。2.3 JoyFilter功能块功能描述:JoyFilter块是一个双向的模拟量标定块,也就是说它对输入的模拟量进行预处理,把输出范围调整为-3276732767。功能块如下图:输入:(1)AnalogInput,UINT型,模拟量的输入信号。(2)DI_JoystickDirSwitchPOS,BOOL型,正向微动开关。当PAR_DirSwitchDiagnosticNotUse为FALS
3、E时,此时又手柄向正向移动,那么只有正向微动开关TRUE,OUTPUT才会有输出。(3)DI_JoystickDirSwitchNEG,BOOL型,负向微动开关.当PAR_DirSwitchDiagnosticNotUse为FALSE时,此时又手柄向负向移动,那么只有负向微动开关TRUE,OUTPUT才会有输出。(4)PAR_NegFull,UINT型,负向输入的调节参数.取值范围:0255,主要用于当负向输入最大时,调节参数使得OUTPUT也为负向最大。(5)PAR_POSFull,UINT型,正向输入的调节参数.取值范围:0255,主要用于当正向输入最大时,调节参数使得OUTPUT也正负向
4、最大。(6)PAR_Zero,UINT型,零输入的调节参数。取值范围:0255,主要用于当手柄在零位时,即零输入时,调节参数使得OUTPUT也为零。(7)PAR_DeadBand,UINT型死区设置参数。取值范围:0100。当输入进入参数设置范围,输出为零(8)PAR_NegProgression,SINT型.取值范围:100100,设置负向输出缓冲曲线度,手柄负向输出值相对于输入值的一个响应曲线,曲线如图:(9)PAR_PosProgression,SINT型。取值范围:-100100,设置正向输出缓冲曲线度,手柄正向输出值相对于输入值的一个响应曲线。(10)PAR_MinErrorDiff
5、erence,UINT型,取值范围:0100,设置出错范围,当输入超出范围时,激活ErrorHigh或ErrorLow开关,并使输出为零。(11)PAR_FaultOnDelay,UINT型,取值范围:0255,过载延时。(12)PAR_DirSwitchDiagnosticNotUse,BOOL型,此参数为TRUE时,微动开关无效,为FALSE时,微动开关有效输出:(1)OutputEable,BOOL型,输出使能,为TRUE是块才会有输出。(2)Output, INT型,调整后的信号量,输出数值范围3276732767(3)ErrorHigh,BOOL型,当输入超出PAR_Full +50
6、00范围时, ErrorHigh为TRUE,输出置零.(4)ErrorLow,BOOL型,输入超出PAR_ZeroPAR_MinErrorDifference范围, ErrorHigh为TRUE,并把输出置零。(5)JoystickDirSwitchPOSMissing,BOOL型,正向微动开关出错时,值为TRUE。(6)JoystickDirSwitchNEGMissing, BOOL型负向微动开关出错时,值为TRUE。(7)JoystickDirSwitchPOSAndNEGOn,BOOL型,正、负向微动开关同时为TRUE时,值为TRUE。2。4 JoystickAllnputOutOfR
7、ange功能块功能描述:本功能块是用来实现对一个模拟量输入的观察。功能块如下图:输入:(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_M
8、inErrorDifference, 则输出为TRUE.(2) ErrorInputTooLowOut,BOOL型,AIInput PAR_NegFull*256PAR_MinErrorDifference,则输出为TRUE.2。5 JoystikDirSwitchDiagnostic功能块功能描述:本功能块是用来观察手柄模拟量输入时微动开关的状态。功能块如下图:输入:(1) AnalogInput,UINT型,需要观察的模拟量信号。(2)DI_JoystickDirSwitchPOS,BOOL型,正向微动开关.当PAR_DirSwitchDiagnosticNotUse为FALSE时,此时又
9、手柄向正向移动,那么只有正向微动开关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
10、型,过载延时。输出:(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。(
11、3) Reset,BOOL型,复位信号,值为TRUE时不进行平均值运算。输出:(1) Output,UINT型2。7 PedalFilter功能块功能描述:PedalFilter功能块是一个单向的标定模块,主要用于把输入模拟量进行预处理,把输出量范围调整到065535.功能块如下图:输入:(1)AbalogInput,UINT型,来自于传感器的输入量OutPutEnable, BOOL型,使能开关。参数值为TRUE时,模块按当前值输出;为FALSE时,保持上一次输出值。 (2)PAR_Full,UINT型,取值范围:0255,此参数用于调整最大输出值,当输入最大时,使输出接近65535,小于6
12、5535.(3)PAR_Zero,INT型,取值范围:0255,此参数用于调整零位,使输出为零。(4)PAR_DeadBand,UINT型,取值范围:0100,设置死区,当输入进入参数设置范围,输出为零。(5)PAR_Progression,SINT型,取值范围:-100100设置输出缓冲曲线度.(6)PAR_MinErrorDifference,UINT型,取值范围:0100,设置出错范围,当输入超出范围时,激活ErrorHigh或ErrorLow开关,并使输出为零。(7)OutputEnable,BOOL型,使能开关。输出:(1)Output,UINT型,取值范围:065535,输出信号。
13、(2)ErrorHigh,BOOL型,高位出错开关.输入PAR_Full + PAR_MinErrorDifference范围,ErrorHigh为TRUE,并把输出置零。(3)ErrorLow,BOOL型,低位出错开关,输入PAR_Zero PAR_MinErrorDifference范围, ErrorHigh为TRUE,并把输出置零。2.8 RC功能模块功能描述:RC功能块是滤波功能块,它是对传感器信号的输入信号进行滤波.滤波公式为:功能块如下图:输入:(1) Input,UINT型,输入信号。输出:(1) Output,UINT型,输出信号。2。9 Scale功能块功能描述:Scale功
14、能块的主要作用是把一个065535量变换成为两个065535的量,如下图:功能块如下图:输入:(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值 Input值,值为 TRUE;PAR_Zero * 256 Input 值,值为 FALSE。2.10 Transfer功能块功能描述:Transfer 模块用于设置缓冲曲线度
15、, 当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型三、CANII IEC
16、库本库就是一些基于CAN2.0协议的一些功能块。也就是Can2。lib中的一些函数与功能块.3.1 CAN_II_BUFF_INIT函数功能描述:本功能块的主要作用是用来初始化CAN接受信息对象的。注意CAN_II_BUFF_INIT,必须用在CAN_II_INIT前面.本函数是BOOL型的。函数块如下图:输入:(1) ENABLE,BOOL型。函数的使能变量。(2) OBJ,对象号,输入数值,114,0是用来传输的号。(3) ID,信息ID,11或29位ID。(4) EXTENDED,BOOL型,用来扩展ID为29位。输出:(1) ERROR,BOOL型。当OBJ超出范围时有输出。3.2 C
17、AN_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设
18、备的波特率。(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 选择对象号,113.输出:(1) ERROR,当输出为TRUE时,就是选择的对象好有问题.3.5 CAN_II_STATUS功能块功能描述:本功能快就是用来返回 CAN设备的状态。功能块如下图:输入:无输出:(1)
19、 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 ,当有新的数据到了缓存中
20、时为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_INI
21、T和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 IN
22、IT FUNCTION4.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的开始初始化
23、.本函数是BOOL型的。函数块如下图:输入:(1) ENABLE,BOOL型,使能。4。2 PDO HANDLING FUNCTIONS4.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_
24、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号,14。输出:(1) RROR,当ID或PDO超出范围时ERROR有输出。4。2.3 CANOPEN_ADD_TRANSMIT_NODE_ID函数功能描述:虚拟CANOPEN发送的一个节点号(4路PDO)。本函数是BOOL型的。函数图如下:输入:(1) E
25、NABLE,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的
26、。(3) PDO,BYTE型。PDO号,14.输出:(1) ERROR,当ID或PDO超出范围时ERROR有输出.4.3 SDO HANDLING FUNCTIONS4。3.1 ADD_VERSION函数功能描述:把用户的串放入 CANOPEN的版本对象中去(16100A)。本函数是BOOL型的。函数图如下:输入:(1) ENABLE,BOOL型,使能。(2) VER,STRING型,用户定义的串.4。3。2 CANOPEN_GET_SDO函数功能描述:CANOPEN接收一个SDO.本函数是BOOL型的.函数图如下:输入:(1) ENABLE,BOOL型,使能。(2) SDO,BYTE型,SD
27、O号。(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函数功能描述:向网络
28、上的一个节点发送一个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
29、) 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以及程序循环的有关信息。功能块如下图:
30、输出:(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
31、 对应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型,设备停止,准备运
32、行。(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。
33、函数图如下:输入:(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
34、输出为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等于相应的值,CHANNE
35、L B的值设置为16.如果是要计算正反转,A相输入和B相输入相位差90度,则CHANNEL A和CHANNEL B的值等于相应的CHANNEL值。寄存器地址IW130IW137、IW150IW157的值存放的是频率值,IW120IW127、IW160IW167存放的是计数值,在CODESYS联机监控时只显示A相输入的频率值.高速脉冲输入端能够检测的最高频率和程序的大小有关,当程序越大,即程序循环一周需要的时间越长,脉冲输入端能够检测的频率就越低。当实际的输入频率超过控制器能够检测的最大频率则在相应的寄存器里的频率值和极数值就会不准确.当调用RESET_PI函数时当相应的参数值就是CHANNEL
36、 A的值时,相应的计数值就归零。参考IW与通道号,以及输出点: IW Channel# Pluse count IW 2023 2024 2023 2024 130 0 120 131 1 121 132 2 122 133 3 123 134 4 124 135 5 125 136 6 126 137 7 127 150 8 0 160160 151 9 1 161 161 152 10 2 162 162 153 11 3 163 163 154 12 4 164 164 155 13 5 165 165 156 14 6 166 166 157 15 7 167 167功能块如下图:输入
37、:(1)A,BYTE型,通道A,即输入信号的通道号。(2)B,BYTE型,通道B,即输入信号的通道号。6。2 GET_TUPLE函数功能描述:这是一个系统保留函数.是一个POINTER TO BYTE型函数。函数图如下:输入:(1) ID,BYTE型,要选择的TUPLE的号。(2) Selection,BOOL型,当为TRUE时,是选择TUPLE Set boot,当为TRUE时,是选择Application。6。3 LOAD_USER_PROGRAM函数功能描述:本函数是BOOL型的。函数图如下:输入:(1) Dummy,BOOL型,6。4 PARAMS_STORE函数功能描述:存储参数MW
38、0MW247,系统每隔100s保存一次参数到存储器。本函数是BOOL型的.函数图如下:输入:(1) ENABLE,BOOL型,使能。6。5 RESET_PI函数功能描述:脉冲输入计数复位.功能是把脉冲输入计数器置零,软连接口CH接所要复位的通道号。如果要用B通道脉冲上升沿复位A通道的脉冲计数值(或用A脉冲的上升沿复位B通道的计数值),则CH的数值如下公式所示:CH=(Restting channel number+1)*16+Channel to reset函数图如下:输入:(1) CH,BYTE型,要复位的通道号。6.6 SET_AI_TYPE函数功能描述:设置模拟量输入端为电流输入。本函数
39、是BOOL型的。2023模块的(X3.7和X3.10)脚通过此方法没有办法设置,可以通过如下方法将此脚改为电流输入VARPP:POINTER TO WORD;P3:WORD;VAR_ENDPP:=16FFC4;PP:=P3 OR 16#2000;(*选择电流输入*)PP:=P3 AND 16DFFF;(选择电压输入)函数图如下:输入:(1) Value,BYTE型,通过Value的输入来设定输入针是电压输入还是电流输入.6.7 SET_CYCLE_TIME函数功能描述:它是一个系统保留函数,是一个BOOL型的函数.函数图如下:输入:(1) Ctime,WORD型.6.8 SET_PWM_F函数
40、功能描述: Set PWM frequency 模块用于设置输出PWM信号的频率.可设频率范围从 40到 2550 Hz。FREQ为实际的输出频率除以10,CH是需要设置相应频率的通道号(相应的PWM输出的地址号减去100)。如果通道是在同一组里,只要设置其中一个的PWM输出的通道号的频率,其余的通道的频率也是和其一样。一般将系统硬件初始化设置相关的程序放在程序的初始化程序段(只是在系统上电瞬间执行一次)里。函数图如下: 输入:(1) FREQ,BYTE型,为实际的输出频率除以10。(2) CH,BYTE型,CH是需要设置相应频率的通道号(相应的PWM输出的地址号减去100).6.9 TEMP
41、ERATURES功能块功能描述:计算模块的温度,Temperature 功能模块有两路报警输出 (TEMP 1 and TEMP 2);一路模拟量输出(AD_TEMP) ,可通过下述公式计算温度值。还有一路实际的温度值输出(TEMP)。bit_per_deg = 81,263bit_offset = 5,177 * 103temperature = (AD_TEMP - bit_offset) / bit_per_degExamble:AD_TEMP = 8470tempereture = (8470 5,177 103) / 81,263 = 40,519 C目前2023模块没有检测温度的功
42、能,2024有,但是不能用目前的函数计算,可以按照以下方法计算2024模块的温度:Temperature:=DINT_TO_INT((UINT_TO_DINT(%IW115)8060)/65535-636)/10);函数图如下:输出:(1) TEMP1,BOOL型,当温度超过73C是输出为TRUE。(2) TEMP2,BOOL型,当温度低于40C是输出为TRUE。(3) AD_TEMP,WORD型,模拟信号输出,可通过上面公式计算实际温度值.(4) TEMP,SINT型,输出的实际温度值。6.9 TEST_PARAM_PARITY函数功能描述:测试写入的参数,是一个BOOL型的函数。函数图如下
43、:输入:(1) ENABLE,BOOL型,使能.6.10 USER_FUNCTION函数功能描述:本函数也是一个系统保留的函数。函数图如下:输入:(1) Dummy,BOOL型。CheckFault功能块功能描述:检测输入是否有错误。事实上本功能块是Motion功能块的一个子功能块。功能图如下:输入:(1) Control,INT型,输入的控制信号。取值范围, 32767 32767。(2) FeedBacl,UINT型,比例阀反馈输入065535,对应的电流为01安培。输出:(1) DO_FaultInDirUp,BOOL型,(2) DO_FaultInDirDown,BOOL型,七、PWMControl库PWMContro库也就是在PWMControlVoltageAmpere.lib文件中