首页 理论教育 I/O初始化程序的实现方法

I/O初始化程序的实现方法

时间:2023-06-29 理论教育 版权反馈
【摘要】:图5.1-9 手动方向键定义参数检查和报警程序1.程序说明为了增强PLC程序的通用性,使之能适应不同机床的控制要求,在进行PLC程序设计时可通过CNC用户数据的设定,对来自机床的I/O信号及其极性进行选择和变换,802S/C/D子程序库中提供的I/O初始化子程序就是实现这一功能的程序。如由于其他原因,实际机床只能使用常开触点,则需要通过I/O初始化子程序将其转换为常闭信号。

I/O初始化程序的实现方法

978-7-111-50291-3-Chapter05-12.jpg

图5.1-9 手动方向键定义参数检查和报警程序

1.程序说明

为了增强PLC程序的通用性,使之能适应不同机床的控制要求,在进行PLC程序设计时可通过CNC用户数据的设定,对来自机床的I/O信号及其极性进行选择和变换,802S/C/D子程序库中提供的I/O初始化子程序就是实现这一功能的程序。

I/O初始化子程序在子程序库中称“输入滤波”程序,子程序号为SBR62(FILTER),程序可用于PLC的16/16点机床I/O信号I0.0~I1.7/Q0.0~1.7的设定与选择。

需要注意的是:子程序SBR62应根据实际需要使用。如果使用该子程序,输入I0.0~I1.7的使能、极性变换结果将被保存在标志寄存器MW100上,因此,所有其他程序所使用的输入I0.0~I1.7都要以M100.0~M101.7替代。同样,标志寄存器MW102应作为输出Q0.0~1.7使能、极性变换前的缓冲寄存器使用,因此,在其他所有程序中,都需要以缓冲信号M102.0~M103.7替代PLC的实际输出Q0.0~1.7。

子程序SBR62的输入I0.0~I1.7及输出Q0.0~1.7的使能,可分别通过CNC用户数据MD14512[0]/[1]及MD14512[4]/[5]的设定实现。例如,设定MD14512[0]=11111111时,输入I0.0~0.7均有效;而设定MD14512[0]=11110011时,输入I0.2、I0.3无效,其状态在PLC程序中将恒为0等。同样,如设定MD14512[4]=11111111,输出Q0.0~0.7均为有效;如设定MD14512[4]=11110011,则输出Q0.2、Q0.3无效,其输出状态恒为0等。

子程序SBR62的输入I0.0~I1.7和输出Q0.0~1.7极性变换,可通过CNC用户数据MD14512[2]/[3]和MD14512[6]/[7]的设定实现。例如,设定MD14512[2]=00000000时,I0.0~0.7均定义为常开触点输入,触点ON时,PLC程序中的状态为1;设定MD14512[2]=11111111时,I0.0~0.7均定义为常闭触点输入,触点ON时,PLC程序中的状态为0等。同样,如设定MD14512[6]=00000000,输出Q0.0~0.7均定义为“正逻辑”,当PLC程序的处理结果为1时,Q0.0~0.7将输出1;如设定MD14512[6]=00000000,则输出Q0.0~0.7均定义“负逻辑”,当PLC程序的处理结果为1时,Q0.0~0.7将输出0等。

作为电气设计的基本要求,为保证机床安全、可靠运行,用于急停和安全控制的按钮、限位开关输入规定使用常闭触点输入,其他子程序也都按这一要求进行设计。如由于其他原因,实际机床只能使用常开触点,则需要通过I/O初始化子程序将其转换为常闭信号。

2.局部变量和标志

在模板程序中,子程序SBR62(FILTER)使用的局部变量和标志寄存器M如表5.1-4所示。

表5.1-4 SBR62的局部变量和标志寄存器一览表

978-7-111-50291-3-Chapter05-13.jpg

子程序SBR62只使用内部局部变量,程序调用时无需进行赋值。表中的标志寄存器MW100是经SBR62使能、极性变换后的I0.0~I1.7输入缓冲寄存器,在进行其他程序设计时,它应直接替代实际输入I0.0~I1.7编程。标志寄存器MW102是输出Q0.0~Q1.7经使能、极性变换前的缓冲寄存器状态,在进行其他程序设计时,需要以缓冲信号M102.0~M103.7替代PLC实际输出Q0.0~Q1.7。

3.PLC程序设计

I/O使能和极性变换的子程序设计实例如下,程序可在SIEMENS子程序SBR62(FIL-TER)的基础上编写。程序分输入使能及极性变换、输入状态转换、输出使能及极性变换3部分,说明如下。(www.xing528.com)

1)输入使能及极性变换。实现输入I0.0~1.7使能与极性变换的PLC程序Network1的设计如图5.1-10所示。

978-7-111-50291-3-Chapter05-14.jpg

图5.1-10 输入使能与极性变换程序

程序中的“异或”指令WXOR_W用于输入的极性变换,它通过CNC用户数据MD14512[2]/[3]的二进制设定值和输入I0.0~1.7对应位的“异或”操作实现。例如,当用户数据MD14512[2]bit0设定0时,表明输入I0.0为常开触点输入。此时,如I0.0的状态为1,两者“异或”后,输入状态暂存变量L0.0的结果为1。而当MD14512[2]bit0设定1时,表明输入I0.0为常闭触点输入。此时,如I0.0的状态为1,两者“异或”后,输入状态暂存变量L0.0的结果为0等。

程序中的16位“与”运算指令WAND_W用于输入的使能,它通过CNC用户数据MD14512[0]/[1]的二进制设定值和输入状态暂存变量LW0对应位的“与”操作实现。例如,当用户数据MD14512[0]bit0设定0时,表明输入I0.0无效。此时,无论I0.0的状态为1或0,输入缓冲寄存器M100.0的结果总是为0等。

2)输入状态转换。按机床电气设计的一般规定和要求,机床的急停、超程限位开关应使用常闭触点,但通过图5.1-10所示的极性变换程序处理后,在输入缓冲寄存器中所得到的结果将具有常开触点的性质。因此,需要通过图5.1-11所示的程序Network2将有关信号恢复为PLC程序中的常闭触点。

图5.1-11程序中的变量L0.0、L0.1、L0.4、L0.5、L0.7分别为输入I0.0、I0.1、I0.4、I0.5、I0.7的极性变换结果,在模板程序上,它们应分别连接+X、+Z、-X、-Z及急停输入信号;如用户数据MD14510[16]的设定为1、机床类型设定为铣床时,输入I1.2、I1.4应连接+Y、-Y行程限位开关,信号所对应的极性变换结果为变量L1.2、L1.4。

Network2可将以上输入信号的输入缓冲寄存器状态设置为常闭性质,网络的执行结果可直接覆盖Network1的输出MW100。例如,当I0.0连接+X限位开关常闭触点时,按输入极性设定的要求,CNC用户数据MD14512[2]bit0的设定应为1,此时,如+X未超程,输入I0.0为1,经输入极性设定程序Network1的“异或”处理后,L0.0和M100.0的结果将为0,而在其他PLC程序中,则要求超程时的输入状态为1,两者不符,因此,需要通过Network2,直接用978-7-111-50291-3-Chapter05-15.jpg覆盖Network1的输出M100.0。

978-7-111-50291-3-Chapter05-16.jpg

图5.1-11 限位与急停输入状态转换程序

3)输出使能与极性变换。实现输出Q0.0~1.7使能及极性变换的PLC程序Net-work3如图5.1-12所示。

Network3其设计思路与图5.1-10相同,程序中的MW102为其他PLC程序所生成的输出Q0.0~1.7缓冲状态。网络通过CNC用户数据MD14512[6]/[7]的设定值和输出状态缓冲寄存器MB102/MB103对应位的“异或”操作,实现了输出的极性变换;利用MD14512[4]/[5]的设定值和MB120/MB121对应位的“与”操作,实现输出使能的控制。

978-7-111-50291-3-Chapter05-17.jpg

图5.1-12 输出使能与极性变换程序

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈