UR机器人的一个设计理念是模块化,因此不管是控制箱IO还是工具端IO,都可以理解为独立的模块。工具端IO存在于工具端PCB电路中,这块工具端PCB的主要作用就是提供24V/12V电源,处理IO信号和加速度计(脚本中有个读工具端加速度的功能就来自于它)信号,并将他们封装成UR专有的RS485协议发送给控制箱;而控制箱IO存在于安全控制PCB板上,其在电路原理上属于独立的部分,通过板上总线发送给安全控制板和主板。通常机器人弹出“SPI错误”之类的异常时,通常就是控制箱上PWR端子和24V端子没有正常连接,造成IO部分无法工作造成。
-
- PNP与NPN
UR机器人数字输出IO采用了两种形式的结构,即PNP和NPN,得名于控制输入输出的三极管类型,见图 1。PNP输出中,控制信号为高时,将激活三极管,使得24V与输出导通;而控制信号为低时,三极管阻断,24V与输出隔绝,输出为悬浮态(即不确定态,如果与输出连接的是上拉电阻,那么输出端就是高电平,相反如果是下拉电阻,则输出是低电平)。NPN输出中,控制信号为高时,控制信号为高时,三极管激活,输出与GND导通;而控制信号为低时,三极管阻断,输出处于悬浮态。
与输出对应的是PNP和NPN输入,如图 2。输入信号经过限流电阻R驱动光耦,从而让内部电路检测到。PNP输入与NPN输入不同的地方在于PNP输入的一端连接GND,而NPN输入的一端连接的是24V。之所以这样设计,主要是为了与图 1中的PNP输出和NPN输出相对应。PNP输出只能连接PNP输入而NPN输出只能连接NPN输入。
图 3中表示了PNP和NPN输入输出连接方式,无论哪种连接方式,两台设备的GND(0V)都应该连接在一起,以保证具有共同的基准电势。
为什么PNP输入输出与NPN输入输出不能互相连接呢?图 4举出了一个例子。可以看到当PNP输出直接与NPN输入连接时,当PNP输出端内部控制信号激活输出三极管时,输出24V,输入端的光耦由于两端都是24V信号,而无法激活;而当PNP输出端内部控制信号为低,输出三极管处于悬浮态,无法提供输入端光耦所需的电流回路,输入的信号也无法被感知,因此造成NPN输入端没有办法工作。同样的道理,读者可以自行连接NPN输出与PNP输入的情况。因此如果需要使用UR机器人本身的IO,那么必须注意外围设备与机器人IO的型号匹配,否则“不能”正常工作。
还有另外一种IO形式叫推挽输入输出,由于其输出信号是电压信号,因此可以连接在任意PNP或者NPN输入端口之上,感兴趣的读者可以自行查找相关资料。
工具端IO
工具端对应的线束插头为Lumberg RKMV 8-354。总共八个管脚,管脚的定义如图 5 工具端IO定义。12V/24V电源供电模式下,最大工作电流都是600mA,超过额定电流,工具端IO电源会自动切断并尝试恢复,但是过大的电流也可能造成工具端损坏,因此使用之前请评估最大工作电流。
工具端模拟输入信号可以工作在电压模式(0 - 10V)或者电流模式(4mA - 20mA),其电气参数如下。在使用时,请注意输入内阻,否则测量数据不准。
控制箱IO主要分为两大类:安全相关和普通IO(图 7)。安全相关IO与普通IO的一个非常大的不同点就是安全相关IO经过特殊设计,在安全性能上达到一定等级(ISO13849-1),UR机器人的安全IO达到了PLd性能等级。
安全相关IO包含有紧急停止、安全停止和可配置IO,他们在使用时必须成对使用(冗余),详细的使用可参考机器人用户手册。
可配置IO也可以作为普通IO使用(示教器-安装设置-安全部分进行设置),这时他们可以单独使用而不要求成对使用。普通数字输入输出IO均为PNP型,这点与工具端IO有所不同,同时电气参数上控制器IO也有不同(带负载能力和输入内阻),见图 8。虽然单个数字输出IO的最大电流能达到1A,但是不代表所有的数字输出IO都可以同时带负载1A,这是因为在IO模块还有一个总的电流总线限制,这个限制在图 9中列出,如果想要最大化的使用控制箱IO的带载能力,那么最好使用外部电源(如图 9,最大总电流6A)。
模拟输入输出IO电气参数如图 10,可以看到在电流模式下其内阻较工具端模拟输入IO的100欧姆内阻降低到了20欧姆,电压模式下的内阻也由工具端的15K降低到了10K,因此在使用之前请先评估内阻对于测量的影响和对外界设备的电气要求(例如电压范围等)。而在模拟输出上,在电压模式下要考虑对应模拟IO的电流输出能力,电流模式下要注意电压的输出能力。
UR机器人可以通过IO来远程启动和初始化,这利于将机器人作为工作站的一个子系统,因为从用户的角度出发,他们往往希望一键式的启动,例如启动主控PLC的时候,其余设备相继启动。在控制箱IO上预留了这样的接口。通过在ON接口上施加一个12V的脉冲(200ms至600ms)即可实现机器人的远程上电,而在OFF接口上施加12V的电压,那么机器人将会关机。
远程上电机器人之后要想正常使用机器人,还需初始化机器人并加载程序,可以通过Socket端口29999进行,也可以通过IO信号来完成,见图 12,选择默认的程序,配置好对应的数字输入信号,在上电完成后,施加上升沿或者下降沿(缓缓移向,edge to中设置)即可完成自动初始化和默认程序的自动运行。
第2.1小节中介绍PNP输出需与PNP输入相连,NPN输出需与NPN输入相连,那么实际在一些特殊的场合,PNP输出如何与NPN输入相连而能正常工作呢?比较推荐的方式是购买PNP和NPN互转的转换器,如果连转换器都没有,用于短时的测试或者应用环境中干扰较少,可以根据IO接口的电气参数特点,进行一些转化。本文以外围设备是NPN输出,而机器人控制箱的IO都是PNP输入,结合电气参数的特点进行转换的一个方法,再次声明,推荐使用匹配的IO接口,不能满足,那么优先使用转换器,最后才是这种方法。
如图 8中列出的控制箱IO电气特性可知,UR机器人的PNP型数字输入接口,-3到5V是认为低,11-30V为高;同时电流2-15mA,那么该接口的输入电阻可以通过如下公式估计:
如图 13,当NPN输出控制三极管导通时,PNP输入端被拉低到0V,而当NPN控制三极管阻断时,PNP输入电压为:
要使得PNP输入口能够检测到高电平,那么要保证Vin大于11V,那么可以求得上拉电阻R1的取值范围是:
R去2.3K的话,R1得小于2.72K。从稳定性上来讲R1越小越好,但是需要考虑的是当NPN输出控制三极管导通时,24V将直接作用在R1上,R1太小,电流会非常大,可能烧坏NPN 输出控制三极管或者电阻,因此实际操作中要知道NPN最大的灌入电流能力,然后选择合适阻值的电阻,最后在核算电阻的功率,使其在24V作用下功率不超过额定功耗即可。
以上文章感谢CAI同学