收藏 分销(赏)

施耐德PLC标准指令库(优秀文档).ppt

上传人:快乐****生活 文档编号:12841436 上传时间:2025-12-15 格式:PPT 页数:129 大小:484.54KB 下载积分:22 金币
下载 相关
施耐德PLC标准指令库(优秀文档).ppt_第1页
第1页 / 共129页
施耐德PLC标准指令库(优秀文档).ppt_第2页
第2页 / 共129页


点击查看更多>>
资源描述
单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,Click to edit Master title style,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,*,施耐德PLC标准指令库,指令块如图所示:,减计数器指令CTD,输入:,CD:布尔型(BOOL);该输入端的上升沿触发CV的递减计数。,LOAD:布尔型(BOOL);当其为上升沿触发时,CV被置为上限值PV。,PV:字型(WORD);上限值,也就是CV开始递减时的初始值。,输出:,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。,分析:在本例中,当X1为TRUE时,EXP指令执,分析:程序运行时,MIN指令取输入的X1,X2,X3,该输入端的上升沿触发ET端,如X3=64,则X7=8。,返回一个数的自然对数。,输入由BOOL类型ENABLE,以及TIME类型TIMELOW和TIMEHIGH组成。,当定时器的输入端由TRUE变为FALSE时(下降沿),等过了一段时间后,定时器的输出端才变为FALSE。,利用通电延时TON设计一个通电后延时3S的梯形图,X3减去 X4的运算,并把结果输出到X5中,如,端有一个从FALSE变为TRUE的上升沿时,若CV不会降,被检测上升沿的布尔型输入信号,程序例:,分析:程序执行时,将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,指令块如下图所示:,输入:,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,指令块如下图所示:,输入:,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时,其值为TRUE,QD:布尔型(BOOL);一 旦CV达到0时,其值为TRUE,CV:字型(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。指令块如下图所示:,输入:,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。指令块如下图所示:,输入:,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。指令块如下图所示:,输入:,IN:布尔型(BOOL);该输入端的上升沿触发ET端的计时,PT:时间型(TIME);计时时间的上限值,输出:,Q:布尔型(BOOL);当ET端在计时的时候,其值为TRUE,ET:时间型(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。,程序例:,分析:在本例中,当ENABLE X1是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,该功能块检测一个下降沿。指令块如下图所示:,输入:,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,该功能块检测一个上升沿。指令块如下图所示:,输入:,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。指令块如下图所示:,程序例:,分析:在本例中,当X1为TRUE时,ADD执行把操作,数X3和 X4相加的运算,并把结果输出到X5,中,如X3=3;X4=7;则X5=10。,减运算指令,SUB,从某个变量中减去一个变量。允许的变量类型:BYTE、WORD、DWORD、SINT、USINT、INT、UINT、DINT、UDINT、REAL和LREAL。指令如下图所示:,程序例:,分析:在本例中,当X1为TRUE时,SUB执行把操作数,X3减去 X4的运算,并把结果输出到X5中,如,X3=3;X4=7;则 X5=-4。,变量相乘。允许的变量类型:BYTE、WORD、DWORD、SINT、USINT、INT、UINT、DINT、UDINT、REAL和LREAL。指令如下图所示:,乘运算指令,MUL,程序例:,分析:在本例中,当X1为TRUE时,MUL执行把操作,数X3乘以X4的运算,并把结果输出到X5中,,如X3=3;X4=7;则X5=21。,除运算指令,DIV,用一个变量除另一个变量。允许的变量类型:BYTE、WORD、DWORD、SINT、USINT、INT、UINT、DINT、UDINT、REAL和LREAL。指令如下图所示:,程序例:,分析:在本例中,当X1为TRUE时,DIV执行把操,作数X3除X4的运算,并把结果输出到X5,中,如X3=10;X4=5;则X5=2。,截尾取整指令,TRUNC,把实数类型(REAL)转换成DINT类型。取被转换值的整数部分。指令如下图所示:,程序例:,分析:在本例中,当X1为TRUE时,TRUNC执行把操,作数X7截尾取整的运算,即当X7=9.89时,,取其整数部分,并把结果输出到X8,即,X8=9。,取余指令,MOD,一个变量与另一个变量相除取余。允许的变量类型:BYTE、WORD、DWORD、SINT、USINT、INT、UINT、DINT、UDINT。结果为除法运算的余数,是一个整数。指令如下图所示:,程序例:,分析:在本例中,当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的余弦值,正切函数,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,返回一个数的绝对值。指令如下图:,输入 输出,INT INT,REAL,WORD,DWORD,DINT,REAL REAL,BYTE INT,REAL,BYTE,WORD,DWORD,DINT,WORD INT,REAL,WORD,DWORD,DINT,DWORD REAL,DWORD,DINT,SINT REAL,USINT REAL,UINT INT,REAL,WORD,DWORD,DINT,UDINT,UINT,DINT REAL,DWORD,DINT,UDINT REAL,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,,幂函数,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的值 256 USINT,256=x的值 65536 UINT,65536=x的值4294967296 UDINT,4294967296=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=FALSE,OUT:=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,取极限。指令如下图:,一旦CV达到PV时,其值为TRUE,STRING类型变量的操作数中必须包含一个在目标类型变量里有效的值,否则转换的结果为0。,一个从FALSE变为TRUE的上升沿时,CV将加1。,这意味着每次调用这个功能块时,Q会返回FALSE直到CLK在上升沿后有一个下降沿。,该输入端的上升沿触发CV的递减计数。,分析:在本例中,当X1为TRUE时,BOOL_TO_STRING指令执行,输出结果outstring;,ADR返回变量自身的地址,数据类型为DWORD。,若操作数为FALSE,结果为0。,分析:在本例中,当X1为TRUE时,BOOL_TO_BYTE指令执行,输出结果outbyte;,操作数可以为BOOL、BYTE、WORD、DWORD、SINT、USINT、INT、UINT、DINT、UDINT、REAL、LREAL、TIME、DATE、TIME_OF_DAY、DATA_AND_TIME和STRING类型。,PLC 每隔2 秒钟读取一次,如果n超出了数据本身的位数,BYTE、WORD和DWORD类型的操作数将会补0,而有符号类型的操作数(例如INT)将会进行算数移位。,in会左移二进制位n次,同时左边移出的位重新补充到右边。,分析:程序执行时,将PV_WORD设为3,当X2由FALSE变为TRUE上升沿 触发时,CV_WORD也变为3。,分析:在本例中,当X1输入一个由FALSE变为TRUE 的上升沿,则R_TRIG的输出Q也输出一个由,程序例:,当,X1X2时,X2X1X3时,分析:Max是结果的上限值,Min是结果的下限值。,如果IN值大于上限值Max,LIMIT将返回Max,,而如果IN小于Min,那么结果为Min。在本,例中,当X1X2X2时,,输出X9=X3。,QU:布尔型(BOOL);,时间到达时,Q返回了一个信号。,返回一个数的自然对数。,SHR(in,n)。,ET开始计时,定时到达3s后输出Q由FALSE变为,允许的变量类型:BYTE、WORD、DWORD、SINT、USINT、INT、UINT、DINT、UDINT、REAL和LREAL。,数X3乘以X4的运算,并把结果输出到X5中,,将操作数按位循环右移。,分析:在本例中,当X1为TRUE时,ABS指令,如果n超出了数据本身的位数,BYTE、WORD和DWORD类型的操作数将会补0,而有符号类型的操作数(例如INT)将会进行算数移位。,CV_WORD自动加计数1;,在这个方框里(未锁定的)EN/ENO功能也可以用于变量赋值。,正弦值输出到X7中,所以X7=1.,分析:在本例中,X3=1弧度=180/pi度;,日期以秒为单位,用DWORD数据类型从1970年1月1日起存储在内部。,取最大值指令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。,字节类型转换指令,BYTE_TO_转换为数字类型时,若操作数为TRUE,结果为1;若操作数为FALSE,结果为0。,BYTE_TO_转换为布尔类型时,若操作数为TRUE,结果为TRUE;若操作数为FALSE,结果为FALSE。,BYTE_TO_转换为字符串类型时,若操作数为TRUE,结果为“TRUE”,若操作数为FALSE,则结果为“FALSE”。,程序例:,分析:在本例中,当X1为TRUE时,BYTE_TO_WORD,指令执行,输出结果WORD1;由于,OUTBYTE=1,所以WORD1=1。,日期转换指令,从日期和日期时间类型变量转换为其他类型变量,指令如下图:,日期以秒为单位,用DWORD数据类型从1970年1月1日起存储在内部。然后再进行转化。从较大的数据类型转换为较小的数据类型时,有可能丢失部分信息。转换为字符串类型变量时,转换结果为日期常量。,程序例1,:,程序例2:,分析:在本例中,当,X1为TRUE时DATE_TO_WORD指令执行,输出结果OUTWORD;由于输入日期是1970-10-10,所以outword=50994。,分析:在本例中,当,X1为TRUE时,DATE_TO_STRING指令执行,输出结OUTSTRING;由于输入日期是1970-10-10,所以OUTSTRING=D#1970-10-10。,程序例3:,分析:在本例中,当X1为TRUE时,DATE_TO_DWORD,指令执行,输出结果OUTDWORD;由于输入,日期是1970-10-10,所以,OUTDWORD=24364800。,整数转换指令,INT_TO_数据类型,是将整型数据转成其他数据类型。指令如下图:,程序例1:,程序例2:,分析:在本例中,当,X1为TRUE时,INT_TO_BCD指令执行,输出结果OUTWORD;由于输入X3=88,所以OUTWORD=136。,分析:在本例中,当,X1为TRUE时,INT_TO_STRING指令执行,输出结果OUTSTRING;由于输入X3=88,所以OUTSTRING=88。,实数,/长实数类型转换,从实数,/长实数变量类型转换为其它类型。指令如下图:,数值将被四舍五入为近似的整数值,然后转换成新的变量类型。请注意转换为字符串类型时,(长)实数的位数不能超过16位。如果位数太多,那么第十六位将被四舍五入。如果定义的字符串长度比较短,那么数字的右侧部分将被截去。,程序例:,分析:在本例中,当X1为TRUE时,REAL_TO_DINT,指令执行,输出结果OUTDINT;由于输入,X3=-88.1,数值将被四舍五入,所以,OUTDWORD=-88。,TRUE,同时ET开始计数,当ET=3S时,Q输出变回为,当RESET为TRUE时,计数变量CV被初始化为0。,ADR返回变量自身的地址,数据类型为DWORD。,果X2=TRUE。,功能块BLINK的应用,由于X2=TRUE,
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服