百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 热门文章 > 正文

发那科机器人—信号系统 发那科机器人专用信号

bigegpt 2024-12-26 11:48 17 浏览

更多内容请点击 R工控人 关注

********************************

如何获取更多经典文章?

关注 R工控人,定期分享实用资料与技术解答!!!



简介

发那科机器人的信号系统包含:

通用信号:数字DO/DI、组GO/GI、模拟AO/AI、F、M

专用信号:远程UOP、本地SOP、机器人EE接口RO/RI、示教器按键TPIN/TPOUT

通用信号,允许用户进行分配,将物理的io与系统内的逻辑对应,能够在TP&KAREL程序中使用,达到对外部设备的控制。

专用信号,不允许用户进行分配,该类信号规定了每个信号的功能,且与系统的状态、硬件的状态有关,无论是输入还是输出,对于用户来说它们都是只读的。

信号状态与分配


02 - 1 通用信号的基本使用

在KAREL中,可以对信号进行赋值、读取:

  --数字信号
  DOUT[1] = ON  --DO 赋值
  IF (DIN[1]) THEN --DI 只读
    DOUT[2] = ON
  ENDIF
  --模拟信号
  AOUT[1] = 123
  --组信号
  GOUT[1] = 255
 

数字: DIN、DOUT

模拟: AIN、AOUT

EE : RDI、RDO

SOP : OPIN、OPOUT

示教器按键: TPIN、TPOUT

焊接: WDI、WDO、WSI、WSO

组: GIN、GOUT

专用UOP: UIN、UOUT

激光: LDI、LDO、LAI、LAO

F: FLG

M: MRK


在TP程序中,使用如下:

R[1] = AI[1]
IF (R[1] > 2047) JMP LBL[1]
ENDIF
END
LBL[1]
DO[1] = ON
GO[1] = 123

02 - 2 通用信号的分配

TP iPendant中进行分配,如下:

图2-1 进入数字信号

图2-2 选择分配

以上界面为KAREL结合字典实现的UI,方便用户对信号进行分配。

其中这里要解释:

范围( DO[1-8] ): 系统内部逻辑信号

机架: 物理设备的号码,例如Mate柜的CRMA15/CRMA16设备,机架号为48。

插槽: 物理设备的插槽号码。

开始点: 物理设备信号的接线,参照手册内不同设备的接线图。

状态: 反应了当前分配的状态,ACTIV为激活有效,UNASG为未分配,PEND为重启生效。

明白以上几点,那么在用户点击分配后,KAREL中是如何实现分配的?以下列举出KAREL中信号有关的内置程序:

SET_PORT_ASG

功能: 将物理设备端口分配给系统内部的逻辑端口


Purpose: Allows a KAREL program to assign one or more logical ports to specified physical port(s)
Syntax : SET_PORT_ASG(log_port_type, log_port_no, rack_no, slot_no, phy_port_type, phy_port_no, n_ports, status)
Input/Output Parameters :
[in] log_port_type : INTEGER
[in] log_port_no : INTEGER
[in] rack_no : INTEGER
[in] slot_no : INTEGER
[in] phy_port_type : INTEGER
[in] phy_port_no : INTEGER
[in] n_ports : INTEGER
[out] status : INTEGER
%ENVIRONMENT Group :IOSETUP


参数解释:

log_port_type : 逻辑端口类型,在WinOLPC下的 “kliotyps.kl”文件列举的常量值:

log_port_no: 逻辑端口号码,这与示教器分配界面显示的范围一致

rack_no : 机架,这与示教器分配界面的机架一致

slot_no : 插槽,这与示教器分配界面的插槽一致

phy_port_type : 物理端口类型,一般与逻辑端口类型保持一致。

phy_port_no : 物理设备的开始点,这与示教器内分配界面的开始点保持一致

n_ports : 分配的数量,这与范围是一样的,例如,分配DO信号,逻辑端口为1,开始点为1,分配的数量为5时,则表明DO[1] - DO[5] 所对应的开始点为1 - 5.

status : 内置程序返回的状态,当不为0时,表示分配错误

例如分配数字DO信号,范围1-8,机架48,插槽1,开始点21:

SET_PORT_ASG(2,1,48,1,2,21,8,STATUS)

在进行分配前,必须为未分配状态,否则将报错误,以下为清除全部分配:

可以按需进行删除指定范围的分配,13007错误为已分配并重复分配,忽略这个问题即可。

PROGRAM TEST01
VAR
STATUS  :INTEGER
int_val :INTEGER
BEGIN
  FOR int_val = 1 TO 512 DO
    SET_PORT_ASG(2,int_val, 0, 0, 0, 0, 0, STATUS)
    IF (STATUS <> 0 )AND(STATUS <> 13007) THEN
      POST_ERR(STATUS,'',0,1)
    ENDIF
  ENDFOR    
END TEST01

CLR_PORT_SIM

清除逻辑端口仿真信号

Purpose: Sets the specified port to be unsimulated
Syntax : CLR_PORT_SIM(port_type, port_no, status)
Input/Output Parameters :
[in] port_type :INTEGER
[in] port_no :INTEGER
[out] status :INTEGER
%ENVIRONMENT Group :iosetup

SET_PORT_SIM

仿真逻辑端口

Purpose: Sets port simulated
Syntax : SET_PORT_SIM(port_type, port_no, value, status)
Input/Output Parameters :
[in] port_type : INTEGER
[in] port_no : INTEGER
[in] value : INTEGER
[out] status : INTEGER
%ENVIRONMENT Group :IOSETUP

GET_PORT_SIM

获取逻辑端口仿真信号的值

Purpose: Gets port simulation status
Syntax : GET_PORT_SIM(port_type, port_no, simulated, status)
Input/Output Parameters:
[in] port_type :INTEGER
[in] port_no :INTEGER
[out] simulated :INTEGER
[out] status :INTEGER
%ENVIRONMENT Group :IOSETUP

GET_PORT_ASG、GET_LOG_ASG

获取逻辑端口的配置

Purpose: Allows a KAREL program to determine the physical port(s) to which a specified logical port is assigned.
Syntax : GET_PORT_ASG(log_port_type, log_port_no, rack_no, slot_no, phy_port_type, phy_port_no, n_ports, status)
Input/Output Parameters :
[in] log_port_type :INTEGER
[in] log_port_no :INTEGER
[out] rack_no :INTEGER
[out] slot_no :INTEGER
[out] phy_port_type :INTEGER
[out] phy_port_no :INTEGER
[out] n_ports :INTEGER
[out] status :INTEGER
%ENVIRONMENT Group :IOSETUP


Syntax :GET_LOG_ASG(index:INTEGER, log_port_typ:INTEGER, fst_log_port:INTEGER, n_log_ports:INTEGER, rack_no:INTEGER, slot_no:INTEGER, phy_port_typ:INTEGER, fst_phy_port:INTEGER, valid:INTEGER, status:INTEGER)

GET_PORT_CMT、SET_PORT_CMT

逻辑端口的注释读取与赋值

Syntax : GET_PORT_CMT(port_type, port_no, comment_str, status)
Syntax : SET_PORT_CMT(port_type, port_no, comment_str, status)
Input/Output Parameters :
[in] port_type :INTEGER
[in] port_no :INTEGER
[out] comment_str :STRING
[out] status :INTEGER
%ENVIRONMENT Group :IOSETUP

GET_PORT_MOD、SET_PORT_MOD

逻辑端口的模式获取与设定,0 - 正常、1 - 反置、2- 互补。

反置为物理高电平,逻辑相反为低电平,物理为低电平,逻辑相反为高电平

互补为一个输出逻辑端口分配多个物理端口。

默认为正常模式。

Syntax : GET_PORT_MOD(port_type, port_no, mode_mask, status)
Syntax : SET_PORT_MOD(port_type, port_no, mode_mask, status)
Input/Output Parameters :
[in] port_type :INTEGER
[in] port_no :INTEGER
[out][IN] mode_mask :INTEGER
[out] status :INTEGER
%ENVIRONMENT Group :IOSETUP

SET_PORT_VAL、GET_PORT_VAL

读取、设定逻辑端口的值

返回的值为字符串,对于布尔类型 0 = OFF, or 1 = ON

Syntax : GET_PORT_VAL(port_type, port_no, value, status)
Input/Output Parameters :
[in] port_type :INTEGER
[in] port_no :INTEGER
[out][IN] value :STRING
[out] status :INTEGER
%ENVIRONMENT Group :IOSETUP

IO_MOD_TYPE

获取模块的类型

Syntax : IO_MOD_TYPE(rack_no, slot_no, mod_type, status)
Input/Output Parameters:
[in] rack_no :INTEGER
[in] slot_no :INTEGER
[out] mod_type :INTEGER
6 A16B-2202-470
7 A16B-2202-472
8 A16B-2202-480
[out] status :INTEGER
%ENVIRONMENT Group :IOSETUP

IOVALSETIOVALRD

逻辑端口的值获取与设定。

int_val = IOVALSET(2,1,1) 对 DO[1] 设为ON

Syntax : IOVALRD(io_type,io_index,value):INTEGER
Syntax : IOVALSET(io_type,io_index,value):INTEGER
Input/Output Parameters:
[in] io_type :INTEGER
[in] io_index :INTEGER
[in][out] value :INTEGER


CM命令设定逻辑端口值如下:

FUNCTION: 用于设定信号状态,信号支持以下部分定义CONST(Di\Do\Ri\Ro\Flag)

1 = DI
2 = DO
8 = RI
9 = RO
35=Flag

语法结构

SETIOVAL type 索引号 仿真状态(0不仿真,1仿真) unsim值 sim值


TPIN&TPOUT参照:

KAREL Reference Manual B-83144EN-1

C#实现iPendant的按键模拟 & CGTP

SOP、UOP 参照:

B-83284CM_07

程序启动的5种方式


********************************

更多内容请点击 R工控人 关注

欢迎大家问题留言,沟通交流

关注 R工控人,定期分享实用资料与技术解答!!!

相关推荐

了解Linux目录,那你就了解了一半的Linux系统

大到公司或者社群再小到个人要利用Linux来开发产品的人实在是多如牛毛,每个人都用自己的标准来配置文件或者设置目录,那么未来的Linux则就是一团乱麻,也对管理造成许多麻烦。后来,就有所谓的FHS(F...

Linux命令,这些操作要注意!(linux命令?)

刚玩Linux的人总觉得自己在演黑客电影,直到手滑输错命令把公司服务器删库,这才发现命令行根本不是随便乱用的,而是“生死簿”。今天直接上干货,告诉你哪些命令用好了封神!喜欢的一键三连,谢谢观众老爷!!...

Linux 命令速查手册:这 30 个高频指令,拯救 90% 的运维小白!

在Linux系统的世界里,命令行是强大的武器。对于运维小白而言,掌握一些高频使用的Linux命令,能极大提升工作效率,轻松应对各种系统管理任务。今天,就为大家奉上精心整理的30个Linu...

linux必学的60个命令(linux必学的20个命令)

以下是Linux必学的20个基础命令:1.cd:切换目录2.ls:列出文件和目录3.mkdir:创建目录4.rm:删除文件或目录5.cp:复制文件或目录6.mv:移动/重命名文件或目录7....

提高工作效率的--Linux常用命令,能够决解95%以上的问题

点击上方关注,第一时间接受干货转发,点赞,收藏,不如一次关注评论区第一条注意查看回复:Linux命令获取linux常用命令大全pdf+Linux命令行大全pdf为什么要学习Linux命令?1、因为Li...

15 个实用 Linux 命令(linux命令用法及举例)

Linux命令行是系统管理员、开发者和技术爱好者的强大工具。掌握实用命令不仅能提高效率,还能解锁Linux系统的无限潜力,本文将深入介绍15个实用Linux命令。ls-列出目录内容l...

Linux 常用命令集合(linux常用命令全集)

系统信息arch显示机器的处理器架构(1)uname-m显示机器的处理器架构(2)uname-r显示正在使用的内核版本dmidecode-q显示硬件系统部件-(SMBIOS/DM...

Linux的常用命令就是记不住,怎么办?

1.帮助命令1.1help命令#语法格式:命令--help#作用:查看某个命令的帮助信息#示例:#ls--help查看ls命令的帮助信息#netst...

Linux常用文件操作命令(linux常用文件操作命令有哪些)

ls命令在Linux维护工作中,经常使用ls这个命令,这是最基本的命令,来写几条常用的ls命令。先来查看一下使用的ls版本#ls--versionls(GNUcoreutils)8.4...

Linux 常用命令(linux常用命令)

日志排查类操作命令查看日志cat/var/log/messages、tail-fxxx.log搜索关键词grep"error"xxx.log多条件过滤`grep-E&#...

简单粗暴收藏版:Linux常用命令大汇总

号主:老杨丨11年资深网络工程师,更多网工提升干货,请关注公众号:网络工程师俱乐部下午好,我的网工朋友在Linux系统中,命令行界面(CLI)是管理员和开发人员最常用的工具之一。通过命令行,用户可...

「Linux」linux常用基本命令(linux常用基本命令和用法)

Linux中许多常用命令是必须掌握的,这里将我学linux入门时学的一些常用的基本命令分享给大家一下,希望可以帮助你们。总结送免费学习资料(包含视频、技术学习路线图谱、文档等)1、显示日期的指令:d...

Linux的常用命令就是记不住,怎么办?于是推出了这套教程

1.帮助命令1.1help命令#语法格式:命令--help#作用:查看某个命令的帮助信息#示例:#ls--help查看ls命令的帮助信息#netst...

Linux的30个常用命令汇总,运维大神必掌握技能!

以下是Linux系统中最常用的30个命令,精简版覆盖日常操作核心需求,适合快速掌握:一、文件/目录操作1.`ls`-列出目录内容`ls-l`(详细信息)|`ls-a`(显示隐藏文件)...

Linux/Unix 系统中非常常用的命令

Linux/Unix系统中非常常用的命令,它们是进行文件操作、文本处理、权限管理等任务的基础。下面是对这些命令的简要说明:**文件操作类:*****`ls`(list):**列出目录内容,显...