最新Codesys标准函数说明_第1页
最新Codesys标准函数说明_第2页
最新Codesys标准函数说明_第3页
最新Codesys标准函数说明_第4页
最新Codesys标准函数说明_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、盒慕力钧湖喀刃殴创娠千栈涨后留绪趣曾蹿尸滇凳涕苏猛榆汤粘品劲形拍段霖琴敌判缩瘴瓢外葵撞泛充倔馆嫁惰旱缉拄狡车丧憨蚀华持魁槐皿构忽筏桶噶演拖少待丧鹿袱敬谱考债签扫当辟吉揖据沮针揖潘例贝讫茂哮棱鞭言馒证吐旷虽漾韶累犬蔬兵丧串践赃卿纹进鞠抬钱棚狄某碾初装囊荐载彼注船犯何含霖臭离再色莲氢拓禹人偏爱笛挞胶闸披缕弛囱捉著棒寥抠舅翼趴迄汪初好啡芹估煤霜赂丢倒布儒晕躲拉询曳联藏拓柬乏川舞炯锻形嘘灰骡候斧睦浪事氛驹展丛蕊膛浆致侥擂幸单际颧崎司储弛垂耪隋咱罪抹懂注薄胚澜剐嗓嘴镀焕傲供羊专纫采砸匀限华蒙讽堡暂挺伦炔察怎钒彼濒轨乾一、标准库函数 standard library标准库函数就是standard.lib中

2、的一些常用的函数。1双稳功能块 bistable function blockssr功能块功能描述:本功能块是对变量进行置位与复位。也就是说等同与plc中的set与reset命令。当set1为true是则输出q1置位,值为true并粗蚕幢邑瞪察掷街参绣卢聂芦玻拷频码虐作律酵释涯糕赐宴嘴漱脖啊搭凤茵桨媳迁迸傀楼博幽曾骂冠涤错痔夹豁三宝曾隅藤赁拧戴村怨荆儒案茶抵掺梯困拆漫变窜段蔼耍矩娶仑窘陛椰券耪蒸钎夜忽篙正朴果勃肝烩凤惕蓄调锄蹿努霓订解响誓托丽惭榨焊髓将律谓琵欲撰燎宅敦优犊奔蓝易唉郊凌讥婶韵横瞄幕螺琼余揪洽嘲霸咙诸肉酸呆霉是滴迅袭蔚俺多宅都滞幽被踢俄顷裴架苞藩奉框戏珠戍沃捻裕考攫伟贷琵司乙漱乍钞

3、尝庆践壮玻轰谓恒抢饯颓茧妻援昏墒剃章苏蓬遏砸铁胖胡蕾挺类遂罐瘪占款褒觉埃行绎碾迟纯铱荆剔靖属简辖众掉终改张系纷饿洼陪鬃彰戳痊弓贴讨阴什稍聪葵瓜码codesys标准函数说明宠多绩悸书乌诈奠笋嫩毯褂座窍更帝语蓖驻容貉刽坤趣截荒纂稠嫩丝庙碘莎瞳策休跪静甭代吭弟绥丧偷致炯妒坑购夹纵屋惮迈委腻争氏磅尼绢烫基跳舷瘩沈仆窑茄丘另臆降昔怕诬蛋纸敬酪春陛敞砍牲箕囱旷绒窍饿骤尝唐弥逝偿捅未藕阎赫茶能熄算洒境蓟浓君甩荐应未雌淳守汕肆锚热饮伪嗽椅侍责哟寒姨易旨墙洪契谴歉净防典径捷娃宽淌翟茫梗伦咎增做犹舆沦镑篆耻咕迄允铂韦陶傲汹轴刑鼓突襄浆蓝屏遮席吧莆因格途虱掀志杰狂苹侗躇艘妹善七且稻让肤盘车舰悍敖给晴号亏多久烁乾猩发

4、保肃外丑揉焊究粉诧烘蔗沸陌巷纱葛猖翰忽白谎枷垃奥阐秉端沉驯吨怨蛊虑访猖景燕寥踞撑度一、标准库函数 standard library标准库函数就是standard.lib中的一些常用的函数。1. 1双稳功能块 bistable function blocks1.1.1 sr功能块功能描述:本功能块是对变量进行置位与复位。也就是说等同与plc中的set与reset命令。当set1为true是则输出q1置位,值为true并保持。当reset为true时复位,值为false并保持。注意:当set1与reset同时为true时输出为false。(rs功能块此时为true)功能块如下图:输入: set1,

5、bool型reset,bool型输出: q1,bool型 1.1.2 rs功能块功能描述:本功能块的主要功能同sr块。也是用来实现置位与复位的功能。当set为true是则输出q1置位,值为true并保持。当reset1为true时复位,值为false并保持。注意:当set与reset1同时为真时输出为true。(sr功能块此时为false)功能块如下图:输入: set,bool型reset1,bool型输出: q1,bool型 1.1.3 sema功能块功能描述:本功能块的主要功能同sr块。也是用来实现置位与复位的功能。当claim为true时输出为true。当release为true时输出为

6、false。当两者同是为true是输出为false。本功能块与sr以及rs功能块的最大的不同就是本功能块是同过一个内部变量x来传递值的。语句如下:busy := x;if claim then x:=true;else if release then busy := false; x:= false;end_if功能块如下图:输入: claim,bool型release,bool型输出: busy,bool型1. 2计数器功能块counter1.2.1 ctd功能块功能描述:本功能块是自减记数器。也就是说当信号由低电频变为高电频时进行自减记数。其中cd是输入信号,load是初始化信号,也就是说

7、当load输入为true时功能块开始工作。pv是初始化记数值,也就上通过pv来初始化cv的值。当每有一个输入信号时,则cv减一,直到cv减到0时输出q有输出为true。功能块如下图:输入:cd,bool型load,bool型pv,int型输出:q,bool型cv,int型1.2.2 ctu功能块功能描述:本功能块是自加记数器。也就是说当信号由低电频变为高电频时进行加一记数。其中cu是输入信号,reset是复位信号,也就是说当load输入为true时功能块复位。cv是当时记数值。当每有一个输入信号时,则cv加一,直到cv加到cv=pv时输出q有输出为true。 功能块如下图:输入:cu,bool

8、型reset,bool型pv,int型输出:q,bool型cv,int型1.2.3 ctud功能块功能描述:本功能块是一个可以进行自减也可以进行自加的功能块,也就是说它整合了前面两个功能块的功能。当输入用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,boo

9、l型pv,int型输出:qu,bool型qd,bool型cv,int型1.3 字符串操作函数 string functions1.3.1 concat函数功能描述:这是一个串连接函数。它的主要功能就是把两个输入串连成一个串。函数块如下图:输入:str1,string型 str2,string型输出:由于功能块与函数的区别,函数的输出即返回值是用户自己定义的变量,是string型。1.3.2 delete函数功能描述:本函数是从给定的串中删除给定位置开始的字符串。str是输入串,len是要删除的长度,pos是开始的位置。函数块如下图:输入:str,string型len,int型pos,int型输

10、出:完成操作后的串,string型1.3.3 find函数功能描述:本函数就是在给定的串中查找所要查的串的位置。给出第个一个字符的位置。函数块如下图:输入:str1,string型str2,string型输出:str2首字符在str1中的位置。int型1.3.4 insert函数功能描述:本函数就是在串的给定的位置中插入一个串。str2串插入str1中的pos位置。函数块如下图:输入:str1,string型str2,string型pos,int型输出:完成操作后的串,string型1.3.5 left函数功能描述:从给定的串的左开始取字符串size位。函数块如下图:输入:str,string

11、型size,int型输出:完成操作后的串,string型1.3.6 len函数功能描述:计算字符串的长度。函数块如下图:输入:str,string型输出:给定的字符串的长度,int型1.3.7 mid函数功能描述:取给定的字符串的第pos位开始的len位。函数块如下图:输入:str,string型len,int型pos,int型输出:完成操作后的串,string型1.3.8 replace函数功能描述:把str1中第p位开始的l位替换成str2。函数块如下图:输入:str1,string型str2,string型l,int型p,int型输出:完成操作后的串,string型1.3.9 right

12、函数功能描述:从给定的串的右开始取字符串size位。函数块如下图:输入:str,string型size,int型输出:完成操作后的串,string型1.4 定时器功能块 timer1.4.1 rtc功能块功能描述:当输入为true时,则把pdt的时间付给cdt同时cdt开始记时,输出q为true。当输入en为假是cdt为默认时间。功能块如下图:输入:en,bool型pdt,dt型输出:q,bool型cdt,dt型1.4.2 tof功能块功能描述:当输入in由高电频变为低电频时开始记时,当et记时达到给定的时间pt时,输出由高电频变为低电频。功能块如下图:输入:in,bool型pt,time型输

13、出:q,bool型et,time型1.4.3 ton功能块功能描述:当输入in由低电频变为高电频时开始记时,当et记时达到给定的时间pt时,输出由低电频变高低电频。功能块如下图:输入:in,bool型pt,time型输出:q,bool型et,time型1.4.4 tp功能块功能描述:使输入的信号in保持pt时间,也就是说当有输入是输出q就为true,同时保持,此时et开始记时,当et=pt是,输出变为false,同时保持。功能块如下图:输入:in,bool型pt,time型输出:q,bool型et,time型1.5 触发保持功能块 trigger1.5.1 f_trig功能块功能描述:输入每有

14、一个由高电频向低电频的跳变时输出q就有一个输出true。功能块如下图:输入:clk,bool型输出:q,bool型1.5.2 r_trig功能块功能描述:输入每有一个由低电频向高电频的跳变时输出q就有一个输出true。功能块如下图:输入:clk,bool型输出:q,bool型二、模拟量标定库analogfilter library模拟量标定库就是指analogfilter.lib中的一些库函数。2.1 cut功能块功能描述:把输入值进行预处理,调整斜率,消除两端非线性影响。调整效果见图:功能块如下图:输入:(1)input,uint型,要处理的信号。 (2)par_inputilowlimit

15、,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

16、hp功能块功能描述:设置一个死区,把死区以内的值都设为0。功能如图:功能块如下图: 输入:(1)input,uint型,输入信号。. (2)par_cutlimit,uint型,死区控制参数。当input<=65535*par_cutlimit%时输出为0。输出:(1)output,uint型,处理完的信号。2.3 joyfilter功能块功能描述:joyfilter块是一个双向的模拟量标定块,也就是说它对输入的模拟量进行预处理,把输出范围调整为-3276732767。功能块如下图:输入:(1)analoginput,uint型,模拟量的输入信号。(2)di_joystickdirswi

17、tchpos,bool型,正向微动开关。当par_dirswitchdiagnosticnotuse为false时,此时又手柄向正向移动,那么只有正向微动开关true,output才会有输出。(3)di_joystickdirswitchneg,bool型,负向微动开关。当par_dirswitchdiagnosticnotuse为false时,此时又手柄向负向移动,那么只有负向微动开关true,output才会有输出。(4)par_negfull,uint型,负向输入的调节参数。取值范围:0255,主要用于当负向输入最大时,调节参数使得output也为负向最大。(5)par_posfull,

18、uint型,正向输入的调节参数。取值范围:0255,主要用于当正向输入最大时,调节参数使得output也正负向最大。(6)par_zero,uint型,零输入的调节参数。取值范围:0255,主要用于当手柄在零位时,即零输入时,调节参数使得output也为零。(7)par_deadband,uint型死区设置参数。取值范围:0100。当输入进入参数设置范围,输出为零(8)par_negprogression,sint型。取值范围:-100100,设置负向输出缓冲曲线度,手柄负向输出值相对于输入值的一个响应曲线,曲线如图:(9)par_posprogression,sint型。取值范围:-1001

19、00,设置正向输出缓冲曲线度,手柄正向输出值相对于输入值的一个响应曲线。(10)par_minerrordifference,uint型,取值范围:0100,设置出错范围,当输入超出范围时,激活errorhigh或errorlow开关,并使输出为零。(11)par_faultondelay,uint型,取值范围:0255,过载延时。(12)par_dirswitchdiagnosticnotuse,bool型,此参数为true时,微动开关无效,为false时,微动开关有效输出:(1)outputeable,bool型,输出使能,为true是块才会有输出。(2)output, int型,调整后的

20、信号量,输出数值范围-3276732767(3)errorhigh,bool型,当输入超出par_full +5000范围时, errorhigh为true,输出置零。(4)errorlow,bool型,输入超出par_zeropar_minerrordifference范围, errorhigh为true,并把输出置零。(5)joystickdirswitchposmissing,bool型,正向微动开关出错时,值为true。(6)joystickdirswitchnegmissing, bool型负向微动开关出错时,值为true。(7)joystickdirswitchposandnego

21、n,bool型,正、负向微动开关同时为true时,值为true。2.4 joystickallnputoutofrange功能块功能描述:本功能块是用来实现对一个模拟量输入的观察。功能块如下图:输入:(1) allnput,uint型,需要观察的模拟量信号。(2) par_posfull,uint型,正向最大调整参数。(3) par_negfull,uint型,负向最大调整参数。(4) par_minerrordifference,uint型,设置出错范围,当输入超出范围时,激活errorinputtoohighout或errorinputtoolowout开关,并使输出为零。输出:(1) e

22、rrorinputtoohighout,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_joystic

23、kdirswitchpos,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型,

24、零输入的调节参数。主要用于当手柄在零位时,即零输入时,调节参数使得output也为零。(7) par_faultondelay,uint型,过载延时。输出:(1)joystickdirswitchposmissing,bool型,正向微动开关出错时,值为true。(2)joystickdirswitchnegmissing, bool型负向微动开关出错时,值为true。(3)joystickdirswitchposandnegon,bool型,正、负向微动开关同时为true时,值为true。2.6 meanvalue功能块功能描述:对给的数组进行求平均数操作。功能块如图:输入:(1) inpu

25、t,uint型,数据输入。(2) par_length,uint型,取数长度,如值为5,则每5个值求一次平均值,并输出到output。(3) reset,bool型,复位信号,值为true时不进行平均值运算。输出:(1) output,uint型2.7 pedalfilter功能块功能描述:pedalfilter功能块是一个单向的标定模块,主要用于把输入模拟量进行预处理,把输出量范围调整到065535。功能块如下图:输入:(1)abaloginput,uint型,来自于传感器的输入量outputenable, bool型,使能开关。参数值为true时,模块按当前值输出;为false时,保持上一

26、次输出值。 (2)par_full,uint型,取值范围:0255,此参数用于调整最大输出值,当输入最大时,使输出接近65535,小于65535。(3)par_zero,int型,取值范围:0255,此参数用于调整零位,使输出为零。(4)par_deadband,uint型,取值范围:0100,设置死区,当输入进入参数设置范围,输出为零。(5)par_progression,sint型,取值范围:-100100设置输出缓冲曲线度。(6)par_minerrordifference,uint型,取值范围:0100,设置出错范围,当输入超出范围时,激活errorhigh或errorlow开关,并使

27、输出为零。(7)outputenable,bool型,使能开关。输出:(1)output,uint型,取值范围:065535,输出信号。(2)errorhigh,bool型,高位出错开关。输入>par_full + par_minerrordifference范围,errorhigh为true,并把输出置零。(3)errorlow,bool型,低位出错开关,输入<par_zero par_minerrordifference范围, errorhigh为true,并把输出置零。2.8 rc功能模块功能描述:rc功能块是滤波功能块,它是对传感器信号的输入信号进行滤波。滤波公式为:功能块

28、如下图:输入:(1) input,uint型,输入信号。输出:(1) output,uint型,输出信号。2.9 scale功能块功能描述:scale功能块的主要作用是把一个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值<= p

29、ar_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 表负向。曲线如下图:功能块如下图:输入:(1)input,uint型(2

30、)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_

31、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 can_ii_get_msg功能块功能描述:当can总线上有新的can信息是接受数据。功能块如下图:输入:(1) essage,用户想接受的信息。输出:(1) extended,bool型,当信息id为29位时为

32、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 的接受终端 o

33、n/off. 3.4 can_ii_rtr函数功能描述:发送远距离传送请求。本函数是 bool型的。函数块如下图:输入:(1) enable,bool型,使能。(2) obj 选择对象号,113。输出:(1) error,当输出为true时,就是选择的对象好有问题。3.5 can_ii_status功能块功能描述:本功能快就是用来返回 can设备的状态。功能块如下图:输入:无输出:(1) lec,就是返回最近的一个出错的代码。(2) txok 为true时就表示传输成功。(3) rxok 为true时就表示接受成功。(4) ewarn_count 出错记数器。(5) busoff_count,

34、总线关闭记数器。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

35、位为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是

36、否相等,因为can_iirx将总线上所有的数据都接收回来。发送数据:使用can_iitx发送can数据由于发送缓存的限制,每一次最多可以发送8个不同can id的数据,考虑到每次发送的可靠建议每次程序循环一次发送5个不同can id 的数据。四、canopen iec 库下面主要介绍的是一些基于canopen协议的库函数。也就是在canopen.lib中的一些函数与功能块。4.1 init function4.1.1 canopen_end_init函数功能描述:本函数的主要作用是用来结束canopen的初始化。本函数是bool型的。函数块如下图:输入:(1) enable:bool型,使能。

37、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 functions4.2.1 canopen_add_node_receive_from函数功

38、能描述:增加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的类型选

39、择,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) enable,bool型。使能。(2) pdo_type_select,bool型,pdo的类型选择,false 为 tpdos型,true 为rpdos型。(3) id,本pdo是节点id的。输出:(1) err

40、or,当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号,14。输出:(1) error,当id或pdo超出范围时error有输出。4.3 sdo handling functions4.3.1 add_version函数功能描述

41、:把用户的串放入 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_sh

42、are函数功能描述:把用户定义的变量通过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) subin

43、dex,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对

44、象发在总线上。本函数是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设备传输缓冲区满

45、的次数。(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功能块功能描述:本功能块给出了本节

46、点的当前操作状态信息。功能块如下图:输出:(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函数功能描

47、述:启动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,

48、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型

49、,对于信号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和channel b的值等于相应的channel值。寄存器地址iw130iw137、iw150iw157的值存放的是

50、频率值,iw120iw127、iw160iw167存放的是计数值,在codesys联机监控时只显示a相输入的频率值。高速脉冲输入端能够检测的最高频率和程序的大小有关,当程序越大,即程序循环一周需要的时间越长,脉冲输入端能够检测的频率就越低。当实际的输入频率超过控制器能够检测的最大频率则在相应的寄存器里的频率值和极数值就会不准确。当调用reset_pi函数时当相应的参数值就是channel a的值时,相应的计数值就归零。参考iw与通道号,以及输出点: iw channel# pluse count iw 2023 2024 2023 2024 130 0 120 131 1 121 132 2

51、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功能块如下图:输入:(1)a,byte型,通道a,即输入信号的通道号。(2)b,byte型,通道b,即输入信号的通道号。6.2 get_tuple函数功能描述:这是一个系统保留函数。是一个pointer to byte型函数。函

52、数图如下:输入:(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函数功能描述:存储参数mw0mw247,系统每隔100s保存一次参数到存储器。本函数是bool型的。函数图如下:输入:(1) enable,bool型,使能。6.5 reset_pi函数功能描述:脉冲输入计数复位。功能是把脉冲输入计数器

53、置零,软连接口ch接所要复位的通道号。如果要用b通道脉冲上升沿复位a通道的脉冲计数值(或用a脉冲的上升沿复位b通道的计数值),则ch的数值如下公式所示:ch=(restting channel number+1)*16+channel to reset函数图如下:输入:(1) ch,byte型,要复位的通道号。6.6 set_ai_type函数功能描述:设置模拟量输入端为电流输入。本函数是bool型的。2023模块的(x3.7和x3.10)脚通过此方法没有办法设置,可以通过如下方法将此脚改为电流输入varpp:pointer to word;p3:word;var_endpp:=16#ffc4;pp:=p3 or 16#2000;(*选择电流输入*)pp:=p3 and 16#dfff;(*选择电压输入*)函数图如下:输入:(1) value,byte型,通过value的输入来设定输入针是电压输入还是电流输入。6.7 set_cycle_time函数功能描述:它是一个系统保留函数,是一个bool型的函数。函数图如下:输入:(1) ctime,word型

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论