发那科机器人—信号系统 发那科机器人专用信号
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
IOVALSET、IOVALRD |
逻辑端口的值获取与设定。 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):**列出目录内容,显...
- 一周热门
- 最近发表
- 标签列表
-
- mybatiscollection (79)
- mqtt服务器 (88)
- keyerror (78)
- c#map (65)
- resize函数 (64)
- xftp6 (83)
- bt搜索 (75)
- c#var (76)
- mybatis大于等于 (64)
- xcode-select (66)
- mysql授权 (74)
- 下载测试 (70)
- linuxlink (65)
- pythonwget (67)
- androidinclude (65)
- logstashinput (65)
- hadoop端口 (65)
- vue阻止冒泡 (67)
- oracle时间戳转换日期 (64)
- jquery跨域 (68)
- php写入文件 (73)
- kafkatools (66)
- mysql导出数据库 (66)
- jquery鼠标移入移出 (71)
- 取小数点后两位的函数 (73)