用矩阵法安放输入按钮或输出执行器件可实现增扩PLC输入或输出点的设计讨论
一般小型集成式PLC都有固定数量的输入、输出点,如S7-200的CPU221为10点的PLC(输入点=6,输出点=4),CPU222为14点的PLC(输入点=8,输出点=6),最多输入、输出点的PLC为CPU226为40点:其输入点=24,输出点=16。
对于这类PLC如I/O口不够,可选用I/O扩展模块来增加输入、输出点。但可扩展的输入、输出点不是无限的,如CPU221不能扩展I/O口,CPU222最多可扩张32个输入口和32个输出口……CPU226容许扩展口最多,其输入可扩张到128,其输出可扩展到120(继电器输出)112(DC输出)。
对一个PLC控制系统,如实际控制需要输入或输出口很多,而现有的控制柜内已无空间安放过多的输入、输出模块,或不想因增扩过多的输入输出模块使设计成本提高,可采用矩阵排列的方法,来实现用较少的输入、输出口来完成较多的输入、输出点的控制作用。
一、矩阵法的设计构思
有一求助帖:“50个开关点,类似矩阵排列,怎么能通过最少的PLC 输入输出点数达到检测某一个开关的闭合。··········”
对此帖我的答复:用15个输入点、15个输出点可以实现用最少的PLC 输入、输出点数达到检测50个开关中的某一个开关的闭合状态: 如S7-200PLC,可选用其IB0的I0.0~I0.6与IIB1的1.0~I1.6这二组各7个输入点,组成7×7矩阵输入,可构成49个按钮输入点,再用I0.7作第50个按钮输入点。输出也是一样:用QB0的Q0.0~Q0.6与Q1.0~Q1.6组成7×7矩阵输出,可构成49路输出标志,再用Q0.7作第50路输出标志。
矩阵输入设计原则:
为实现7×7矩阵输入控制,要求矩阵输入控制的每个按钮应为带有2个触点的按钮开关,其一个触点接I0.0~I0.6的1点,另一触点接I1.0~I1.6的1点。
矩阵连线原则:将7×7矩阵所用得49个按钮分为7组,每组含7个开关:用IB0通道的I0.0~I0.6这7个输入点作7组开关组的组选中开关,即I0.0=1选中第一组开关(1~7号)、I0.1=1选中第二组开关(8~14号)、I0.2=1选中第三组开关(15~21号)、I0.3=1选中第四组开关(22~28号)、I0.4=1选中第五组开关(29~35)、I0.5=1选中第六组开关(36~42)、I0.6=1选中第七组开关(43~49)。
选中的组开关,具体选中第几号开关可用IB1的I1.0~I1.6的7个输入点来决定:如按钮按下使I0.0=1、I1.0=1,说明选中第1组开关(即I0.0=1)中的第1位(即I1.0=1)开关,即为1号按钮按下。如输出用Q0.0~Q1.6与Q1.0~Q1.6二组的14个输出口组成矩阵式输出,其构思与输入矩阵一样,即对应1号按钮的输出标示为:Q0.0=1与Q1.0=1。
如按钮按下使I0.1=1、I1.2=1,说明选中第2组开关(即I0.1=1)的第3位(即IB1的I1.2=1),即是10号按钮按下。其对应输出为:Q0.1=1与Q1.2=1, 即为第10号按钮的对应输出标志。
下图为开关1(K1)与开关3(K3)与PLC输入端的接线图:当按下按钮K1时,使I0.0=1、I1.0=1,即一号开关闭合,如按下按钮K3时,使I0.0=1、I1.2=1,即三号开关闭合。
考虑带有2个触点的按钮,长时间使用会出现触点接触不良的现象,万一2个触点有有一个接触不好,就会使输入给PLC的输入信号产生错误,为此按钮应选用只有一个触点的,再用2只二极管分别接IB0、IB1的对应点也可达到同样的控制作用。见下图:
上图只画了I0.0、I0.1、I0.2三组共21个按钮的接线图,其它4组的28个按钮连线与此相似,第50个按钮直接接I0.7即可。
这样的矩阵输入与输出连线,PLC编程就非常简单,只用MOV_W传递指令就可完成:
如按下3号按钮,使I0.0=1、I1.2=1,即:IW0=16#12,对应输出QW0=16#12(即Q0.0=1、Q1.2=1)。
对输出最简单的显示方法是用15个指示灯做输出指示,但要记住亮灯的规律:前49个按钮按下的输出标志都是用2个输出指示灯同时亮来表示的:如Q0.0=1、Q1.2=1,则表示第3个输入按钮按下。如Q0.1=1、Q1.0=1,则表示第8个输入按钮按下。其第50 个按钮按下为Q0.7=1,即只要Q0.7=1,则表示第50个按钮按下。
如觉得这种表示方法不直观,不易记,要想用50个灯的亮来直接表示50个按钮的按下标志,就得用硬件配合,即用硬件组成50路指示灯的显示线路,见下图:
这7×7矩阵的49路电路是由分立元件构成的2输入与非门,为使读者更好地理解这矩阵的输出电路,现将这49路中的第一路的电路图单独画出,见下图:
上左图为由分立元件构成的2输入与非门,上右图是由集成电路构成的同功能指示电路,其动作原理为:当按下1号按钮,使I0.0=1、I1.0=1,使输出Q0.0=1、Q1.0=1。49路与非门只有第一路与非门的二个输入信号为Q0.0与Q1.0(见上图),使该与非门输出=0,使对应只是鞥D1亮。
本来这49路的每一路只需一个2输入与非门(4011)就可以实现功能,但由于选用的与非门为COS电路,其最高工作电压≤18V,其输出电流小,不能直接驱动指示灯,故每路由4081(四2输入与门)和1413(七路晶体管OC门输出反向器)这2种集成块组成的2输入与非门电路。49路共需与门49个(即需用13块4081四与门)和49个反向器(即需用7块1413集成块),所以组成这49路显示电路共需用集成电路20块。
由于4081选用15V电源做工作电压,故将PLC输出侧的L接+15V,M接0V。下图即为用集成电路设计的1~14路输出电路图:
二、对选用不同组合的矩阵的讨论
前面介绍了为7×7矩阵设计构思,下面再讨论一下其它形式的矩阵组合:将选用的PLC的输入(或输出)口分为二组,一组的个数为A,作为开关组的选中触点。另一组为B,作为选中的各开关组的开关序号触点。PLC总的输入点数=A+B,组成矩阵后的实际输入按钮点数=A*B,故矩阵实际输入按钮点数(A*B)比原PLC的输入点数(A+B)增加的输入点数=A*B-(A+B)。见下表:
讨论:
1、上表一为PLC的A、B二组输入点总数都=14,但A、B的取值不同而组成的6种矩阵的数据,从中可以发现,用同样多的输入(或输出)点只有A=B=1/2的输入(或输出)点时,其矩阵可扩增的输入(或输出)点最多。
2、上表二为PLC的A、B二组输入点数都相等,但A、B的值不同而组成的6种矩阵的数据,从中可以发现,其 A、B值越大所组成的矩阵可扩增的输入(或输出)点越多。
3、从A×B矩阵连线的结构可知:
(1)、同一组的各个开关可以同时按下几个开关,对其矩阵输出无影响,即确保输出状态正确,如对7×7矩阵,其第一组开关为K1~K7,这7个开关可随意组合同时按个。如同时按下K1、K2、K3这3个开关,其K1输出为I0.0=1、I1.0=1, K2输出为I0.0=1、I1.1=1, K3输出为I0.0=1、I1.2=1,从中发现:其按下的个开关只使I0.0=1,而I0.1~I0.7皆为0,故输出点只能为含I0.0=1的第一组的3个开关有输出,而其它组的对应序号的开关因I0.1~I0.7=0而不会产生输出。
(2)各组的相同序号的各个开关可以同时按下,对其矩阵输出也无影响,如7×7矩阵可以同时按下各组的第一序号开关,即1号(I0.0=1、I1.0=1即第一组第一号数)、8号(I0.1=1、I1.0=1、即第二组第一号数=1+7=8)、15号(I0.2=1、I1.0=1、即第三组第一号数=1+2×7=15)、22号(I0.3=1、I1.0=1、即第四组第一号数=1+3×7=22)……
(3)、不同组号又不同序号的按钮,不可同时按下,如7×7矩阵,其第1号按钮按下为I0.0=1、I1.0=1,第10号按钮按下为I0.1=1、I1.2=1,这二个按钮组号与序号均不相同,如同时按下时,除对应的1号与第10号有输出外,又会使第3号(即I0.0=1、I1.2=1)与第8号(即I0.1=1、I1.0=1)产生错误的输出。
以上三点应为设计矩阵式输入(或输出)时应考虑与注意的事项,特别是控制过程中会出现多个输入点同时出现的情况下,要合理安排输入(或输出)点,使设计既实现用最少的输入(或输出)点,完成增扩输入(或输出)点的作用,又不会出错误的控制动作。
本文到此结束,如有不妥或错误之处请给予指正,谢谢大家!