




已阅读5页,还剩124页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
本章节描述标准库指令中的各种指令,5.2标准库指令,1,指令块如图所示:,减计数器指令CTD,输入:CD:布尔型(BOOL);该输入端的上升沿触发CV的递减计数。LOAD:布尔型(BOOL);当其为上升沿触发时,CV被置为上限值PV。PV:字型(WORD);上限值,也就是CV开始递减时的初始值。,2,输出:Q:布尔型(BOOL);一旦CV达到0时,其值为TRUE。CV:字型(WORD);不断减1的值,从PV开始直至其达到0。当LOAD为TRUE时,计数变量CV被初始化为上限值PV。当CD端有一个从FALSE变为TRUE的上升沿时,若CV大于0时,它将减1(也就是说,它不会输出小于0的值)。当CV等于0时,Q返回TRUE。,程序例:,分析:程序执行时,将PV_WORD设为3,当X2由FALSE变为TRUE上升沿触发时,CV_WORD也变为3。此时输入端X1执行FALSE变为TRUE,上升沿触发,则CV_WORD自动减计数1;当X1第3次由FALSE变TRUE上升沿触发时,CV_WORD递减到0时,此时Q输出为1。,加计数指令CTU,指令块如下图所示:,5,输入:CU:布尔型(BOOL);该输入端的上升沿触发CV的递增计数。RESET:布尔型(BOOL);当其为TRUE时,CV被复位为0。PV:字型(WORD);CV计数的上限。输出:Q:布尔型(BOOL);一旦CV达到其上限PV时,其值为TRUE。CV:字型(WORD);不断加1的值,直至其达到PV。当RESET为TRUE时,计数变量CV被初始化为0。当CU端有一个从FALSE变为TRUE的上升沿时,CV将加1。当CV大于或等于上限PV时,Q返回TRUE。,程序例:,分析:程序执行时,将PV_WORD设为3,此时CV_WORD是0。此时输入端X1执行FALSE变为TRUE上升沿触发,则CV_WORD自动加计数1;当X1第3次由FALSE变TRUE上升沿触发时,CV_WORD递增到3时,此时Q输出为1。此时如将RESET端X2执行FALSE变为TRUE上升沿触发,则指令重新复位数变量CV被初始化为0。,计数功能块CTU:,运行结果:,加减双向计数指令CTUD,指令块如下图所示:,10,输入:CU:布尔型(BOOL);当CU端有上升沿时,触发CV的递增计数。CD:布尔型(BOOL);当CD端有上升沿时,触发CV的递减计数。RESET:布尔型(BOOL)当其为TRUE时,CV被复位为0。LOAD:布尔型(BOOL);当其为TRUE时,CV被置为PV。PV:字型(WORD);CV递增时的上限值,或CV开始递减时的初始值。,输出:QU:布尔型(BOOL);一旦CV达到PV时,其值为TRUEQD:布尔型(BOOL);一旦CV达到0时,其值为TRUECV:字型(WORD);不断减1的值,从PV开始直至其达到0,程序例:,分析:当RESET为TRUE时,计数变量CV被初始化为0。当LOAD为TRUE时,计数变量CV被初始化为上限值PV。当CU端有一个从FALSE变为TRUE的上升沿时,CV将加1。当CD端有一个从FALSE变为TRUE的上升沿时,若CV不会降到0以下时,它将减1。当CV大于或等于上限PV时,QU返回TRUE。当CV等于0时,QD返回TRUE。,延时断开指令TOF,定时器功能块,完成关延时的功能。当定时器的输入端由TRUE变为FALSE时(下降沿),等过了一段时间后,定时器的输出端才变为FALSE。指令块如下图所示:,13,输入:IN:布尔型(BOOL);该输入端的下降沿触发ET端的计时。PT:时间型(TIME);ET计时时间的上限值(延时时间)。输出:Q:布尔型(BOOL);一旦ET端计时达到上限值PT时,输出一个下降沿(延时时间过去了)。ET:时间型(TIME);时间的当前状态。,程序例:,分析:当IN为TRUE时,Q为TRUE,ET为0。一旦IN变为FALSE,定时器的输出端ET以精确到毫秒级别开始计时,直到它等于PT,随后它会维持不变。当IN变为FALSE且ET等于PT时,Q为FALSE。否则它为TRUE。在本例中,PT设为3s,当X1由TRUE变为FALSE下降沿触发时,定时器输出端ET开始计时,定时到达3s后输出Q由TRUE变为FALSE。,延时导通指令TON,定时器功能块,完成开延时的功能。当定时器的输入端变为TRUE时,等过了一段时间后,定时器的输出端才变为TRUE。指令块如下图所示:,16,输入:IN:布尔型(BOOL);该输入端的上升沿触发ET端的计时。PT:时间型(TIME);ET计时时间的上限值(延时时间)。输出:Q:布尔型(BOOL);一旦ET端计时达到上限值PT时,输出一个上升沿(延时时间过去了)。ET:时间型(TIME);时间的当前状态。,程序例:,分析:当IN为FALSE时,Q为FALSE,ET为0。一旦IN变为TRUE,定时器的输出端ET以精确到毫秒级别开始计时,直到它等于PT,随后它会维持不变。当IN变为TRUE且ET等于PT时,Q为TRUE。否则它为FALSE。在本例中,PT设为3s,当X1由FALSE变为TRUE上升沿触发时,定时器输出端ET开始计时,定时到达3s后输出Q由FALSE变为TRUE。,(1)通电延时TON:,相应的时序图:,利用通电延时TON设计一个通电后延时3S的梯形图,t=880ms时的运行状态:,t=3s时的运行状态:,参考程序及运行结果:,(2)断电延时TOF:,相应的时序图:,t=0s时的运行结果:,t=1s100ms时的运行结果:,t=3s时的运行结果:,例:利用断电延时TOF设计一个断电后延时3S的梯形图,PLC每隔2秒钟读取一次,i)定时器及计数器组合用法,单个定时器用法,秒脉冲+计数器,上述的三种方式都可以实现2s的定时功能,但是从编程的简便性和容许的误差角度来说,第二种方式可能更简单,产生的时间误差更小。在编程的过程中,考虑到PLC扫描周期的影响,应尽可能的简化程序的编写,以减小扫描周期可能产生的误差。,触发定时器指令TP,触发定时器功能块。定时器的输出值不断增加,直至其达到限值。在计时期间,“脉冲”变量为TRUE,其他时候为FALSE。指令块如下图所示:,26,输入:IN:布尔型(BOOL);该输入端的上升沿触发ET端的计时PT:时间型(TIME);计时时间的上限值输出:Q:布尔型(BOOL);当ET端在计时的时候,其值为TRUEET:时间型(TIME);时间的当前状态,程序例:,分析:当IN为FALSE时,Q为FALSE,ET为0。一旦IN变为TRUE,定时器的输出端ET以毫秒精度开始计时,直到它等于PT,随后它会维持不变。当IN变为TRUE且ET小于或等于PT时,Q为TRUE。否则它为FALSE。在由PT值指定的时间到达时,Q返回了一个信号。在本例中,PT设为3时,X1为FALSE,Q1为FALSE,当X1为TRUE,Q输出变为TRUE,同时ET开始计数,当ET=3S时,Q输出变回为FALSE.,脉冲指令BLINK,功能块BLINK产生脉冲信号。输入由BOOL类型ENABLE,以及TIME类型TIMELOW和TIMEHIGH组成。输出OUT是BOOL类型。指令块如下图所示:,如果ENABLE为TRUE,在时间周期TIMEHIGH,BLINK设置输出为TRUE;然后在时间周期TIMELOW,设置输出为FALSE。,29,程序例:,分析:在本例中,当ENABLEX1是TRUE时,BLINK开始工作,输出低电平2s高电平1s的脉冲,如下图。,功能块BLINK的应用,振荡电路:振荡电路的作用是产生交流电振荡来作为信号源。一般把大小和方向都随周期发生变化的电流叫振荡电流,能产生振荡电流的电路叫做振荡电路,那么如何使用PLC程序编制振荡电路呢?施耐德标准程序库中提供了这样的功能块来产生方波脉冲,即BLINK功能块。,功能块介绍:(1)功能块BLINK产生脉冲信号。输入由BOOL类型ENABLE,以及TIME类型TIMELOW和TIMEHIGH组成。输出OUT是BOOL类型。,(2)如果ENABLE为TRUE,在时间周期TIMEHIGH,BLINK设置输出为TRUE.然后在时间周期TIMELOW,设置输出为FALSE,程序和时序图如图所示。,图中的程序实现了10s为真、10s为假的方波,时序图:,参考程序:,下降沿触发指令F_TRIG,该功能块检测一个下降沿。指令块如下图所示:,34,输入:CLK:布尔型(BOOL);被检测其下降沿的布尔型输入信号输出:Q:布尔型(BOOL);当CLK上检测到一个下降沿时,其值为TRUE;只要输入变量CLK为TRUE,输出Q都保持为FALSE。一旦CLK为FALSE,Q会先返回TRUE,然后被置为FALSE。这意味着每次调用这个功能块时,Q会返回FALSE直到CLK在上升沿后有一个下降沿。,程序例:,分析:在本例中,当X1输入一个由TRUE变为FALSE的下降沿,则F_TRIG的输出Q也输出一个由FALSE变为TRUE的上升沿,然后再变为FALSE。,上升沿触发指令R_TRIG,该功能块检测一个上升沿。指令块如下图所示:,37,输入:CLK:布尔型(BOOL);被检测上升沿的布尔型输入信号输出:Q:布尔型(BOOL);当CLK上检测到一个上升沿时,其值为TRUE只要输入变量CLK为FALSE,输出Q保持为FALSE。一旦CLK为TRUE,Q会先返回TRUE,然后被置为FALSE。这意味着每次调用这个功能块时,Q会返回FALSE直到CLK在下降沿后有一个上升沿。,程序例:,分析:在本例中,当X1输入一个由FALSE变为TRUE的上升沿,则R_TRIG的输出Q也输出一个由FALSE变为TRUE的上升沿,然后再变为FALSE。,单按钮控制输出灯的程序,功能块R-TRIG的应用:,程序:,时序图:,功能介绍:,(1)在程序中使用上升沿指令后,当输入点button的状态由OFF转为ON,仅在驱动输入ON后1个扫描周期内,内部软元件M3才动作。,(2)在输入点button上,第一个脉冲信号到来时,M3产生一个扫描周期的单脉冲,使M3的常开触点闭合一个扫描周期。(3)第一个按钮脉冲到来一个扫描周期后,M3断开,输出线圈lamp接通,第二个支路使输出线圈lamp保持接通。,(4)当第二个脉冲到来时,M3再产生一个扫描周期的单脉冲,使得输出线圈lamp的状态由接通变为断开。(5)通过分析可知,通过一个输入点的上升沿的次数可控制输出lamp的接通和断开。(6)由以上分析可知,这个程序同时也是一个二分频电路。如果将分频的脉冲信号加button上,则lamp的输出频率刚好是button输入频率的12.,加运算指令ADD,变量相加。允许的变量类型:BYTE、WORD、DWORD、SINT、USINT、INT、UINT、DINT、UDINT、REAL和LREAL。指令块如下图所示:,43,程序例:,分析:在本例中,当X1为TRUE时,ADD执行把操作数X3和X4相加的运算,并把结果输出到X5中,如X3=3;X4=7;则X5=10。,减运算指令SUB,从某个变量中减去一个变量。允许的变量类型:BYTE、WORD、DWORD、SINT、USINT、INT、UINT、DINT、UDINT、REAL和LREAL。指令如下图所示:,45,程序例:,分析:在本例中,当X1为TRUE时,SUB执行把操作数X3减去X4的运算,并把结果输出到X5中,如X3=3;X4=7;则X5=-4。,变量相乘。允许的变量类型:BYTE、WORD、DWORD、SINT、USINT、INT、UINT、DINT、UDINT、REAL和LREAL。指令如下图所示:,乘运算指令MUL,47,程序例:,分析:在本例中,当X1为TRUE时,MUL执行把操作数X3乘以X4的运算,并把结果输出到X5中,如X3=3;X4=7;则X5=21。,除运算指令DIV,用一个变量除另一个变量。允许的变量类型:BYTE、WORD、DWORD、SINT、USINT、INT、UINT、DINT、UDINT、REAL和LREAL。指令如下图所示:,49,程序例:,分析:在本例中,当X1为TRUE时,DIV执行把操作数X3除X4的运算,并把结果输出到X5中,如X3=10;X4=5;则X5=2。,截尾取整指令TRUNC,把实数类型(REAL)转换成DINT类型。取被转换值的整数部分。指令如下图所示:,51,程序例:,分析:在本例中,当X1为TRUE时,TRUNC执行把操作数X7截尾取整的运算,即当X7=9.89时,取其整数部分,并把结果输出到X8,即X8=9。,取余指令MOD,一个变量与另一个变量相除取余。允许的变量类型:BYTE、WORD、DWORD、SINT、USINT、INT、UINT、DINT、UDINT。结果为除法运算的余数,是一个整数。指令如下图所示:,53,程序例:,分析:在本例中,当X1为TRUE时,MOD指令执行把X3除以X4,并把余数输出到X5中;即当X3=10,X4=6时,余数X5=4。,比较等于指令EQ,指令如下图所示:,当两个操作数相等时,返回值为TRUE。操作数可以为BOOL、BYTE、WORD、DWORD、SINT、USINT、INT、UINT、DINT、UDINT、REAL、LREAL、TIME、DATE、TIME_OF_DAY、DATE_AND_TIME和STRING类型。,程序例:,分析:在本例中,当X1为TRUE时,EQ指令执行,比较X3和X4的值,如X3=X4,则输出比较结果X2为TRUE;否则,X2为FALSE。所以,当X3=X4=6时,比较结果X2=TRUE。,比较大于等于指令GE,大于或等于。指令如下图:,当第一个操作数大于或者等于第二个操作数时,返回值为TRUE。操作数可以为BOOL、BYTE、WORD、DWORD、SINT、USINT、INT、UINT、DINT、UDINT、REAL、LREAL、TIME、DATE、TIME_OF_DAY、DATE_AND_TIME和STRING类型。,程序例:,分析:在本例中,当X1为TRUE时,GE指令执行,比较X3和X4的值,如X3大于等于X4,则输出比较结果X2为TRUE;否则,X2为FALSE。所以,当X3=5;X4=6时,比较结果X2=FALSE。,比较大于指令GT,大于。指令如下图:,当第一个操作数比第二个大时,返回值为TRUE。操作数可以为BOOL、BYTE、WORD、DWORD、SINT、USINT、INT、UINT、DINT、UDINT、REAL、LREAL、TIME、DATE、IME_OF_DAY、DATE_AND_TIME和STRING类型。,程序例:,分析:在本例中,当X1为TRUE时,GT指令执行,比较X3和X4的值,如X3大于X4,则输出比较结果X2为TRUE;否则,X2为FALSE。所以,当X3=8,X4=6时,比较结果X2=TRUE。,比较小于等于指令LE,小于等于。指令如下图所示:,第一个操作数小于或者等于第二个操作数时,返回值为TRUE。操作数可以为BOOL、BYTE、WORD、DWORD、SINT、USINT、INT、UINT、DINT、UDINT、REAL、LREAL、TIME、DATE、TIME_OF_DAY、DATA_AND_TIME和STRING类型。,程序例:,分析:在本例中,当X1为TRUE时,LE指令执行,比较X3和X4的值,如X3小于或者等于X4,则输出比较结果X2为TRUE,否则,X2为FALSE。所以,当X3=8,X4=9时,比较结果X2=TRUE。,比较小于指令LT,小于。指令如下图所示:,当第一个操作数比第二个小时,返回值为TRUE。操作数可以为BOOL、BYTE、WORD、DWORD、SINT、USINT、INT、UINT、DINT、UDINT、REAL、LREAL、TIME、DATE、TIME_OF_DAY、DATA_AND_TIME和STRING类型。,程序例:,分析:在本例中,当X1为TRUE时,LE指令执行,比较X3和X4的值,如X3小于X4,则输出比较结果X2为TRUE,否则,X2为FALSE。所以,当X3=8,X4=9时,比较结果X2=TRUE。,比较不等于指令NE,不等于。指令如下图所示:,当两个操作数不相等时,返回值为TRUE。操作数可以为BOOL、BYTE、WORD、DWORD、SINT、USINT、INT、UINT、DINT、UDINT、REAL、LREAL、TIME、DATE、TIME_OF_DAY、DATA_AND_TIME和STRING类型。,程序例:,分析:在本例中,当X1为TRUE时,LE指令执行,比较X3和X4的值,如X3不等于X4,则输出比较结果X2为TRUE,否则,X2为FALSE。所以,当X3=8,X4=9时,比较结果X2=TRUE。,循环左移指令ROL,将操作数按位循环左移。指令如下图所示:,ROL(in,n)。允许的数据类型:BYTE、WORD、DWORD。in会左移二进制位n次,同时左边移出的位重新补充到右边。,程序例:,分析:在本例中,inbyte和outbyte分别设为byte数据类型,inbyte=10#69,n=2。当X1为TRUE时,ROL执行循环左移位,此时,inbyte=10#69=2#01000101,循环左移2位后,outbyte=2#00010101=10#21,循环右移指令ROR,将操作数按位循环右移。指令如下图所示:,ROR(in,n)。允许的数据类型:BYTE、WORD、DWORD。in会左移二进制位n次,同时右边移出的位重新补充到左边。,程序例:,分析:在本例中,inbyte和outbyte分别设为byte数据类型,inbyte=10#69,n=2。当X1为TRUE时,ROR执行循环右移位,此时,inbyte=10#69=2#01000101,循环右移2位后,outbyte=2#01010001=10#81。,左移指令SHL,将操作数按位左移。指令如下图所示:,SHL(in,n)。in:需要左移的操作数。n:操作数左移的位数。如果n超出了数据本身的位数,BYTE、WORD和DWORD类型的操作数将会补0,而有符号类型的操作数(例如INT)将会进行算数移位。也就是说会将这些数的最高位的值补在空出的二进制位上。,程序例:,分析:在本例中,inbyte和outbyte分别设为byte数据类型,inbyte=10#69,n=2。当X1为TRUE时,ROL执行左移位,此时,inbyte=10#69=2#01000101,左移2位后,outbyte=2#00010100=10#20。,右移指令SHR,将操作数按位右移。指令如下图所示:,SHR(in,n)。in:需要右移的操作数。n:操作数右移的位数。如果n超出了数据本身的位数,BYTE、WORD和DWORD类型的操作数将会补0,而有符号类型的操作数(例如INT)将会进行算数移位。也就是说会将这些数的最高位的值补在空出的二进制位上。,程序例:,分析:在本例中,inbyte和outbyte分别设为byte数据类型,inbyte=10#69,n=2。当X1为TRUE时,ROR执行右移位,此时inbyte=10#69=2#01000101,右移2位后,outbyte=2#00010001=10#17。,正弦函数SIN,返回一个数的正弦值,数据以弧度计算。指令如下图:,输入变量可以是BYTE、WORD、DWORD、INT、DINT、REAL、SINT、USINT、UINT、UDINT类型。输出变量只能是REAL类型。,程序例:,分析:在本例中,X3=1弧度=180/pi度;当X1为TRUE时,SIN执行正弦计算,将X3的正弦值输出到X7中,所以X7=0.841。,余弦函数COS,返回一个数的余弦值,数据以弧度计算。指令如下图:,输入变量可以是BYTE、WORD、DWORD、INT、DINT、REAL、SINT、USINT、UINT、UDINT类型。输出变量只能是REAL类型。,程序例:,分析:在本例中,X3=1弧度=180/pi度;当X1为TRUE时,SIN执行余弦运算,将X3的余弦值输出到X7中,所以X7=0.54,正切函数TAN,返回一个数的正切值,数据以弧度计算。指令如下图:,输入变量可以是BYTE、WORD、DWORD、INT、DINT、REAL、SINT、USINT、UINT、UDINT类型。输出变量只能是REAL类型。,程序例:,分析:在本例中,X3=1弧度=180/pi度;当X1为TRUE时,SIN执行正切运算,将X3的正切值输出到X7中,所以X7=1.56。,反正弦函数ASIN,返回一个数的反正弦值,数据以弧度计算。指令如下图:,输入变量可以是BYTE、WORD、DWORD、INT、DINT、REAL、SINT、USINT、UINT、UDINT类型。输出变量只能是REAL类型。,程序例:,分析:在本例中,X3=1弧度=180/pi度;当X1为TRUE时,ASIN执行反正弦运算,将X3的反正弦值输出到X7中,所以X7=1.57。,反余弦函数ACOS,返回一个数的反余弦值,数据以弧度计算。指令如下图:,输入变量可以是BYTE、WORD、DWORD、INT、DINT、REAL、SINT、USINT、UINT、UDINT类型。输出变量只能是REAL类型。,程序例:,分析:在本例中,X3=1弧度=180/pi度;当X1为TRUE时,ACOS执行反余弦运算,将X3的反余弦输出到X7中,所以X7=0。,反正切函数ATAN,返回一个数的反正切值。数据以弧度计算。指令如下图:,输入变量可以是BYTE、WORD、DWORD、INT、DINT、REAL、SINT、USINT、UINT、UDINT类型。输出变量只能是REAL类型。,程序例:,分析:在本例中,X3=1弧度=180/pi度;当X1为TRUE时,ATAN执行反正切运算,将X3的反正切值输出到X7中,所以X7=0.785。,取绝对值函数ABS,返回一个数的绝对值。指令如下图:,输入输出INTINT,REAL,WORD,DWORD,DINTREALREALBYTEINT,REAL,BYTE,WORD,DWORD,DINTWORDINT,REAL,WORD,DWORD,DINTDWORDREAL,DWORD,DINTSINTREALUSINTREALUINTINT,REAL,WORD,DWORD,DINT,UDINT,UINTDINTREAL,DWORD,DINTUDINTREAL,DWORD,DINT,UDINT,程序例:,分析:在本例中,当X1为TRUE时,ABS指令执行,将X3的绝对值输出到X7中;如X3=-8,则输出X7=8。,指数函数EXP,返回指数函数。指令如下图:,输入变量可以是BYTE、WORD、DWORD、INT、DINT、REAL、SINT、USINT、UINT、UDINT类型。输出变量只能是REAL类型。,程序例:,分析:在本例中,当X1为TRUE时,EXP指令执行,将X3的指数输出到X7中;如X3=2,则输出X7=7.39,幂函数EXPT,求一个变量关于另一个变量的幂。指令如下图:,两个操作数可以是BYTE、WORD、DWORD、INT、DINT、REAL、SINT、USINT、UINT、UDINT类型。输出变量只能是REAL类型。,程序例:,分析:在本例中,当X1为TRUE时,EXPT指令执行,把X3的X5次幂输出到X7中;如X3=2,X5=3,则X7=23=8,取平方根函数SQRT,返回一个数的平方根。指令如下图:,输入变量可以是BYTE、WORD、DWORD、INT、DINT、REAL、SINT、USINT、UINT、UDINT类型。输出变量只能是REAL类型。,程序例:,分析:在本例中,当X1为TRUE时,SQRT指令执行,把X3的平方根值输出到X7中;如X3=64,则X7=8。,对数函数LOG,返回值是以10为底的对数。指令如下图:,输入变量可以是BYTE、WORD、DWORD、INT、DINT、REAL、SINT、USINT、UINT、UDINT类型。输出变量只能是REAL类型。,程序例:,分析:在本例中,当X1为TRUE时,LOG指令执行,把X3的以10为底的对数结果输出到X7中;如X3=100,则X7=2。,自然对数函数LN,返回一个数的自然对数。指令如下图:,输入变量可以是BYTE、WORD、DWORD、INT、DINT、REAL、SINT、USINT、UINT、UDINT类型。输出变量只能是REAL类型。,程序例:,分析:在本例中,当X1为TRUE时,LN指令执行,把X3的自然对数结果输出到X7中;如X3=88,则X7=4.48。,取地址指令ADR,取地址指令。指令如下图:,ADR返回变量自身的地址,数据类型为DWORD。这个地址可以作为指针传递给操作函数,也可以赋给工程内的某个指针。,程序例:,分析:在本例中,当X1为TRUE时,ADR指令执行,将X3的地址赋予指针变量zhizhen1上,即zhizhen1指向了X1;如X3=88,则指针变量zhizhen1的值16#1187CBB8即是X1的地址,同时指针的指向变量的值zhizhen1是88。,字节长度指令SIZEOF,这个操作符用来确定给定变量x需要占用多少个字节。指令图下图:,SIZEOF操作符通常返回一个无符号数。返回值的类型与变量x的大小相匹配。SIZEOF(x)的返回值返回值的类型0=x的值256USINT256=x的值65536UINT65536=x的值4294967296UDINT4294967296=x的值ULINT,程序例:,分析:在本例中,当X1为TRUE时,SIZEOF指令执行,来确定给定数组变量arr1需要占用多少个字节,并将结果输出到var3(USINT型);由于arr1是0到5的INT型数组变量,因此var3=12。,二选一指令SEL,从两个操作数中选择一个。指令如下图:,由G决定IN0还是IN1为输出。OUT:=SEL(G,IN0,IN1)的含义:OUT:=IN0;若G=FALSEOUT:=IN1;若G=TRUE.允许的数据类型:IN0,IN1,OUT:任意类型G:BOOL.,程序例:,分析:在本例中,当X1为FALSE时,SEL指令选择X3输出到X5中,所以X5=X3=8;当X1为TRUE时,SEL指令选择X4输出到X5中,所以X5=X3=19。,多选一指令MUX,多项选择操作符。指令如下图:,IN0、.,INn以及OUT可以是任意类型的变量。X1必须为BYTE、WORD、DWORD、SINT、USINT、INT、UINT、DINT或UDINT类型。MUX从这一组值中选择第X1个值。,程序例:,分析:在本例中,MUX指令根据X1的值,来决定X9的输出值。当X1=8时,MUX取功能块中的第8个值,即X9=X8=8。,取极限指令LIMIT,取极限。指令如下图:,程序例:,当X1X2时,X2X2时,输出X9=X3。,取最大值指令MAX,取最大值函数。返回输入的值中最大的那一个。指令如下图:,IN0,IN1,IN2和OUT可以为任意类型的变量。,程序例:,分析:程序运行时,MAX指令取输入的X1,X2,X3中最大的值,并将结果输出到X9中。在本例中X2最大,因此X9=X2=9。,取最小值指令MIN,取最小值函数。返回两个值中较小的那一个。指令如下图:,IN0,IN1,IN2和OUT可以为任意类型的变量。,程序例:,分析:程序运行时,MIN指令取输入的X1,X2,X3中最小的值,并将结果输出到X9中。在本例中X3最小,因此X9=X3=6。,赋值指令MOVE,将一个变量的值赋给另一个适当类型的变量。指令如下图:,在图形编辑器FBD、LD、CFC中,MOVE是一个方框。在这个方框里(未锁定的)EN/ENO功能也可以用于变量赋值。,程序例:,分析:在本例中,当X1为TRUE时,MOVE指令执行,将X3的值赋给到X4中;即X4=X3=8。,布尔类型转换指令,从布尔类型转换为其它任意类型。BOOL_TO_转换为数字类型时,若操作数为TRUE,结果为1;若操作数为FALSE,结果为0。BOOL_TO_转换为字符串类型时,若操作数为TRUE,结果为“TRUE”,若操作数为FALSE,则结果为“FALSE”。,程序例1:,程序例2:,分析:在本例中,当X1为TRUE时,BOOL_TO_BYTE指令执行,输出结果outbyte;由于X2=TRUE,所以outbyte=1。,分析:在本例中,当X1为TRUE时,BOOL_TO_STRING指令执行,输出结果outstring;由于X2=TRUE,所以outstring=TRUE。,字节类型转
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 公司对相关方管理制度
- 浪潮项目风管安装技术交底
- LDHs对铅锌矿尾矿重金属污染土壤钝化效果研究
- 2025标准设备采购合同范本版本
- 河南省信阳市二校联考2024~2025学年 高三下册5月第一次测试数学试卷附解析
- 2025年中考语文(长沙用)课件:专题4 文学作品阅读
- 安徽省安庆市2024-2025学年高二下册期中考试数学试卷
- 受众需求分析模型构建-洞察阐释
- 2024年陕西延安“优师计划地方专项”师范毕业生招聘真题
- 2024年嘉兴桐乡市教育系统招聘教师真题
- 订单处理流程优化方案说明
- 2025年互联网营销师(直播销售员)考试题库
- 2025年道教人员考试试题及答案
- 超声基本原理和临床应用
- 2023年上海市高考语文卷试题真题及答案详解(精校打印)
- 集体委托个人委托书范本
- 早自习迟到检讨书综合(总结19篇)
- 兽药GMP培训课件
- 第三单元第2课《盛情邀约》课件-七年级美术下册(人教版2024)
- 医学研究中期进展报告范文
- 塑料零件的快速换模技术考核试卷
评论
0/150
提交评论