莆田西门子(中国)授权总代理商
莆田西门子(中国)授权总代理商
1.和输入输出有关的指令
(1)输入输出刷新指令REF REF(P)指令的编号为FNC50。FX系列PLC采用集中输入输出的方式。如果需要新的输入信息以及希望立即输出结果则必须使用该指令。如图3-60所示,当X0接通时,X10~X17共8点将被刷新;当X1接通时,则Y0~Y7、Y10~Y17、共16点输出将被刷新。
图3-60 输入输出刷新指令的使用
使用REF指令时应注意:
1)目标操作数为元件编号个位为0的X和Y,n应为8的整倍数。
2)指令只要进行16位运算,占5个程序步。
(2)滤波调整指令REFF REFF(P)指令的编号为FNC51。在FX系列PLC中X0~X17使用了数字滤波器,用REFF指令可调节其滤波时间,范围为0~60ms(实际上由于输入端有RL滤波,所以小滤波时间为50μs)。如图3-61所示,当X0接通时,执行REFF指令,滤波时间常数被设定为1ms。
图3-61滤波调整指令说明
使用REFF指令时应注意:
1)REFF为16位运算指令,占7个程序步。
2)当X0~X7用作高速计数输入时或使用FNC56速度检测指令以及中断输入时,输入滤波器的滤波时间自动设置为50ms。
(3)矩阵输入指令MTR MTR指令的编号为FNC52。利用MTR可以构成连续排列的8点输入与n点输出组成的8列n行的输入矩阵。如图3-62所示,由[S]指定的输入X0~X7共8点与n点输出Y0、Y1、Y2(n=3)组成一个输入矩阵。PLC在运行时执行MTR指令,当Y0为ON时,读入行的输入数据,存入M30~M37中;Y1为ON时读入第二行的输入状态,存入M40~M47。其余类推,反复执行。
图3-62 矩阵输入指令的使用
使用MTR指令时应注意:
1)源操作数[S]是元件编号个位为0的X,目标操作数[D1] 是元件编号个位为0的Y,目标操作数[D2] 是元件编号个位为0的Y、M和S,n的取值范围是2~8。
2)考虑到输入滤波应答延迟为10ms,对于每一个输出按20ms顺序中断,立即执行。
3)利用本指令通过8点晶体管输出获得64点输入,但读一次64点输入所许时间为20ms×8=160ms,不适应高速输入操作。
4)该指令只有16位运算,占9个程序步。
2.高速计数器指令
(1)高速计数器置位指令HSCS DHSCS指令的编号为FNC53。它应用于高速计数器的置位,使计数器的当前值达到预置值时,计数器的输出触点立即动作。它采用了中断方式使置位和输出立即执行而与扫描周期无关。如图3-63所示,[S1.]为设定值(100),当高速计数器C255的当前值由99变100或由101变为100时,Y0都将立即置1。
图3-63 高速计数器指令的使用
(2)高速计速器比较复位指令HSCR DHSCR指令的编号为FNC54。如图3-63所示,C254的当前值由199变为200或由201变为200时,则用中断的方式使Y10立即复位。
使用HSCS和HSCR时应注意:
1)源操作数[S1.]可取所有数据类型,[S2.]为C235~C255,目标操作数可取Y、M和S。
2)只有32位运算,占13个程序步。
(3)高速计速器区间比较指令HSZ DHSZ指令的编号为FNC55。如图3-63所示,目标操作数为Y20、Y21和Y22。如果C251的当前值<K1000时,Y20为ON;K1000≤C251的当前值≤K1200时,Y21为ON;C251的当前值>K1200时,Y22为ON。
使用高速计速器区间比较指令时应注意:
1)操作数[S1.] 、[S2.]可取所有数据类型,[S .]为C235~C255,目标操作数[D.]可取Y、M、S。
2)指令为32位操作,占17个程序步。
2.速度检测指令
速度检测指令SPD的编号为FNC56。它的功能是用来检测给定时间内从编码器输入的脉冲个数,并计算出速度。如图4-64所示,[D. ]占三个目标元件。当X12为ON时,用D1对X0的输入上升沿计数,100ms后计数结果送入D0,D1复位,D1重新开始对X0计数。D2在计数结束后计算剩余时间。
图4-64 速度检测指令的使用
使用速度检测指令时应注意:
1)[S1.]为X0~X5,[S2.]可取所有的数据类型,[D.]可以是T、C、D、V和Z。
2)指令只有16位操作,占7个程序步。
3.脉冲输出指令
脉冲输出指令(D)PLSY的编号为FNC57。它用来产生指定数量的脉冲。如图3-65所示,[S1.]用来指定脉冲频率(2~20000Hz),[S2.]指定脉冲的个数(16位指令的范围为1~32767, 32位指令则为1~2147483647)。如果指定脉冲数为0,则产生无穷多个脉冲。[D .]用来指定脉冲输出元件号。脉冲的占空比为50%,脉冲以中断方式输出。指定脉冲输出完后,完成标志M8029置1。X10由ON变为OFF时,M8029复位,停止输出脉冲。若X10再次变为ON则脉冲从头开始输出。
图3-65 脉冲输出指令的使用
使用脉冲输出指令时应注意:
1)[S1.]、[S2.]可取所有的数据类型,[D.]为Y1和Y2。
2)该指令可进行16和32位操作,分别占用7个和13个程序步。
3)本指令在程序中只能使用一次。
5.脉宽调制指令
脉宽调制指令PWM的编号为FNC58。它的功能是用来产生指定脉冲宽度和周期的脉冲串。如图3-66所示,[S1.] 用来指定脉冲的宽度,[S2.]用来指定脉冲的周期,[D.]用来指定输出脉冲的元件号(Y0或Y1),输出的ON/OFF状态由中断方式控制。
图3-66 脉宽调制指令的使用
使用脉宽调制指令时应注意:
1)操作数的类型与PLSY相同;该指令只有16位操作,需7个程序步。
2)[S1.]应小于[S2.]。
6.可调速脉冲输出指令
可调速脉冲输出指令该指令(D)PLSR的编号为FNC59。该指令可以对输出脉冲进行加速,也可进行减速调整。源操作数和目标操作数的类型和PLSY指令相同,只能用于晶体管PLC的Y0和Y1,可进行16位操作也可进行32位操作,分别占9个和17个程序步。该指令只能用一次。
1.循环移位指令
右、左循环移位指令(D)ROR(P)和(D)ROL(P)编号分别为FNC30和FNC31。执行这两条指令时,各位数据向右(或向左)循环移动n位,后一次移出来的那一位同时存入进位标志M8022中,如图1所示。
图1 右、左循环移位指令的使用
2.带进位的循环移位指令
带进位的循环右、左移位指令(D) RCR(P)和(D) RCL(P)编号分别为FNC32和FNC33。执行这两条指令时,各位数据连同进位(M8022)向右(或向左)循环移动n位,如图2所示。
图2 带进位右、左循环移位指令的使用
使用ROR/ROL/RCR/RCL指令时应该注意:
1)目标操作数可取KnY,KnM,KnS,T,C,D,V和Z,目标元件中指定位元件的组合只有在K4(16位)和K8(32位指令)时有效。
2)16位指令占5个程序步,32位指令占9个程序步。
3)用连续指令执行时,循环移位操作每个周期执行一次。
3.位右移和位左移指令
位右、左移指令SFTR(P)和SFTL(P)的编号分别为FNC34和FNC35。它们使位元件中的状态成组地向右(或向左)移动。n1指定位元件的长度,n2指定移位位数,n1和n2的关系及范围因机型不同而有差异,一般为n2≤n1≤1024。位右移指令使用如图3 所示。
图3 位右移指令的使用
使用位右移和位左移指令时应注意:
1)源操作数可取X、Y、M、S,目标操作数可取Y、M、S。
2)只有16位操作,占9个程序步。
4.字右移和字左移指令
字右移和字左移指令WSFR(P)和WSFL(P)指令编号分别为FNC36和FNC37。字右移和字左移指令以字为单位,其工作的过程与位移位相似,是将n1个字右移或左移n2个字。
使用字右移和字左移指令时应注意:
1)源操作数可取KnX、KnY、KnM、KnS、T、C和D,目标操作数可取KnY、KnM、KnS、T、C和D。
2)字移位指令只有16位操作,占用9个程序步.
3)n1和n2的关系为n2≤n1≤512。
5.先入先出写入和读出指令
先入先出写入指令和先入先出写入读出指令SFWR(P)和SFRD(P)的编号分别为FNC38和FNC39。
先入先出写入指令SFWR的使用如图4所示, 当X0由OFF变为ON时,SFWR执行, D0中的数据写入D2,而D1变成指针,其值为1(D1必须先清0);当X0再次由OFF变为ON时,D0中的数据写入D3,D1变为2,依次类推,D0中的数据依次写入数据寄存器。D0中的数据从右边的D2顺序存入,源数据写入的次数放在D1中,当D1中的数达到n-1后不再执行上述操作,同时进位标志M8022置1。
图4 先入先出写入指令的使用
先入先出读出指令SFRD,当X0由OFF变为ON时,D2中的数据送到D20,同时指针D1的值减1,D3~D9的数据向右移一个字,数据总是从D2读出,指针D1为0时,不再执行上述操作且M8020置1。
图5 先入先出读出指令的使用
使用SFWR和SFRD指令时应注意:
1)目标操作数可取KnY、KnM、KnS、T、C和D,源操数可取所有的数据类型。
2)指令只有16位运算,占7个程序步