• 沒有找到結果。

输入输出信号

在文檔中 技术参考手册 (頁 59-70)

请参阅 第39页的运用表达式中的函数调用。

1.9 输入输出信号

Signals

机械臂配有多个数字和模拟用户信号,这些信号可读,也可在程序内对其进行更改。 InvertDO

应数字信号输出信号生成脉冲 PulseDO

重设数字信号输出信号(为0)

Reset

设数字信号输出信号(为1)

Set

变更数字信号输出信号值 SetAO

变更数字信号输出信号值(符号值,如高/低)

SetDO

变更一组数字信号输出信号的值 SetGO

读取输入信号值

通过程序可直接读取输入信号值,如,

! Digital input IF di1 = 1 THEN ...

! Digital group input (smaller than 23 bits) IF gi1 = 5 THEN ...

! Analog input

IF ai1 > 5.2 THEN ...

可能会产生下列可恢复错误。可用错误处理器处理这些错误。系统变量ERRNO将设置 为:

如果信号变量是RAPID中声明的变量,则ERR_NO_ALIASIO_DEF。尚未同I/O配置以 及指令AliasIO中确定的I/O信号相连。

如果与I/O单元无接触,则ERR_NORUNUNIT。

如果无法访问I/O信号(仅对ICI现场总线有效),则ERR_SIG_NOT_VALID。

读取输出信号值

通过程序可直接读取输出信号值,如:

! Digital output IF do1 = 1 THEN ...

! Digital group output (smaller than 23 bits) IF go1 = 5 THEN ...

! Analog output IF ao1 > 5.2 THEN ...

可能会产生下列可恢复错误。可用错误处理器处理这些错误。系统变量ERRNO将设置 为:

下一页继续

技术参考手册 - RAPID语言概览 59

1.9 输入输出信号

如果信号变量是RAPID中声明的变量,则ERR_NO_ALIASIO_DEF。尚未同I/O配置以 及指令AliasIO中确定的I/O信号相连。

如果与I/O单元无接触,则ERR_NORUNUNIT。

如果无法访问I/O信号(仅对ICI现场总线有效),则ERR_SIG_NOT_VALID。

读取大编组信号值

介于23位至32位之间的编组信号必须由函数来读取,并被转换为dnum型。

! Digital group input (larger than 23 bits) IF GInputDnum(gi1) = 4294967295 THEN ...

! Digital group output (larger than 23 bits) IF GOutputDnum(go1) = 4294967295 THEN ...

可能会产生下列可恢复错误。可用错误处理器处理这些错误。系统变量ERRNO将设置 为:

如果信号变量是RAPID中声明的变量,则ERR_NO_ALIASIO_DEF。尚未同I/O配置以 及指令AliasIO中确定的I/O信号相连。

如果与I/O单元无接触,则ERR_NORUNUNIT。

如果无法访问I/O信号(仅对ICI现场总线有效),则ERR_SIG_NOT_VALID。

测试输入信号或输出信号

用于定义 指令

等到设置或重设数字信号输入时 WaitDI

等到设置或重设数字信号输出时 WaitDO

等到将一组数字信号输入信号设为一个值时 WaitGI

等到将一组数字信号输出信号设为一个值时 WaitGO

等到模拟信号输入小于或大于某个值时 WaitAI

等到模拟信号输出小于或大于某个值时 WaitAO

用于定义:

功能

测试有没有设置数字信号输入 TestDI

获得有效I/O信号 ValidIO

获得有关I/O信号来源的信息 GetSignalOrigin

用于定义 数据类型

介绍I/O信号来源 signalorigin

禁用和启用I/O模块

启动时,自动启用I/O模块,但在程序执行期间会被禁用,过后会再次启用。

用于定义 指令

禁用I/O模块 IODisable

启用I/O模块 IOEnable

下一页继续

60 技术参考手册 - RAPID语言概览

1.9 输入输出信号 续前页

定义输入输出信号

用于定义 指令

定义带别名的信号 AliasIO

用于定义 数据类型

数字信号的符号值 dionum

模拟信号输入信号的名称 signalai

模拟信号输出信号的名称 signalao

数字信号输入信号的名称 signaldi

数字信号输出信号的名称 signaldo

一组数字信号输入信号的名称 signalgi

一组数字信号输入信号的名称 signalgo

介绍I/O信号来源 signalorigin

获取I/O总线和单元的状态

用于定义 指令

获取当前I/O总线的状态 IOBusState

用于定义 功能

返回I/O单元的当前状态 IOUnitState

用于定义 数据类型

I/O单元的状态 iounit_state

I/O总线的状态 bustate

I/O总线的起点

用于定义 指令

启用I/O总线 IOBusStart

技术参考手册 - RAPID语言概览 61

1.9 输入输出信号 续前页

1.10 通信

通过串行通道通信

通过串行通道通信的方式有四种:

• 可将信息输出至FlexPendant示教器显示器,用户回答关于待处理零件数量等方 面的问题; 后读取或写入时作参考的描述符。同时随时都可用FlexPendant示教器,不需要将其打 开。

特定数据类型的文本和数值都可打印。

用FlexPendant示教器函数群TP通信

用途 指令

清空FlexPendant示教器操作显示器 TPErase

在FlexPendant示教器操作显示器上输入文本 TPWrite

在FlexPendant示教器显示器上输入文本,同时将此信息同步保 存到程序的错误日志中。

ErrWrite

标记功能键,读取按下的键。

TPReadFK

读取FlexPendant示教器上的数值 TPReadDnum

读取FlexPendant示教器上的数值 TPReadNum

在基于RAPID语言的FlexPendant示教器上选择窗口 TPShow

用符号常量代表FlexPendant示教器窗口 tpnum

用FlexPendant示教器函数群UI通信

用途 指令

在FlexPendant示教器上输入信息 UIMsgBox

从FlexPendant示教器上读取按下的键 基本类型

在基于RAPID语言的FlexPendant示教器上打开一个应用程序 UIShow

下一页继续

62 技术参考手册 - RAPID语言概览

1.10 通信

用途 功能

在FlexPendant示教器上输入信息 UIMessageBox

从FlexPendant示教器上读取按下的键 高级类型

读取FlexPendant示教器上的数值 UIDnumEntry

调整FlexPendant示教器上的数值 UIDnumTune

读取FlexPendant示教器上的数值 UINumEntry

调整FlexPendant示教器上的数值 UINumTune

读取FlexPendant示教器上的正文 UIAlphaEntry

从FlexPendant示教器的列表中选择项目 UIListView

FlexPendant示教器与系统是否相连 UIClientExist

用途 数据类型

用符号常量代表图标 icondata

用符号常量代表按钮 buttondata

确定菜单列表项 listitem

用符号常量代表选定按钮 btnres

UIShow的实例标识符 uishownum

读取或写入基于字符的串行通道/文件

用途 指令

打开通道/文件,以便读取或写入。

Open

在通道/文件中输入正文 Write

关闭通道/文件 Close

用途 功能

读取数值 ReadNum

读取文本串。

ReadStr

用二进制串行通道/文件/现场总线通信

用途 指令

打开串行通道/文件,以通过二进制模式传输数据。

Open

写入一个二进制串行通道或一份文件 WriteBin

写入任意一个二进制串行通道或任意一份文件 WriteAnyBin

将字符串写入一个二进制串行通道或一份文件 WriteStrBin

文件位置设在文件开始处 Rewind

关闭通道/文件 Close

清除串行通道的输入缓存 ClearIOBuff

读取任一二进制串行通道的信息 ReadAnyBin

将原始数据字节类型的数据写入二进制串行通道/文件/现场总线 WriteRawBytes

下一页继续

技术参考手册 - RAPID语言概览 63

1.10 通信 续前页

用途 指令

从二进制串行通道/文件/现场总线上读取原始数据字节类型的数据 ReadRawBytes

用途 功能

读取二进制串行通道的信息 ReadBin

从一个二进制串行通道或一份文件中读取一个字符串 ReadStrBin

用原始数据字节通信

下述指令和函数用于为通信指令WriteRawBytes和ReadRawBytes提供支持 用途

指令

将原始数据字节变量设为零 ClearRawBytes

挨个复制原始数据字节变量 CopyRawBytes

将变量内容打包装入原始数据字节类型的“容器”

PackRawBytes

解压原始数据字节类型“容器”的内容至变量中 UnPackRawBytes

将DeviceNet消息标题打包装入原始数据字节“容器”

PackDNHeader

用途 功能

获取原始数据字节变量中有效字节的当前长度 RawBytesLen

串行通道/文件/现场总线的数据

用于定义 数据类型

供随后读取和写入用的串行通道或文件参考 iodev

用于与I/O设备通信的通用数据“容器”

rawbytes

用套接字通信

用途 指令

创建新套接字 SocketCreate

连接远程计算机(仅客户应用程序)

SocketConnect

向远程计算机发送数据 SocketSend

向远程计算机发送数据 SocketSendTo

接收来自远程计算机的数据 SocketReceive

接收来自远程计算机的数据 SocketReceiveFrom

关闭套接字 SocketClose

套接字与端口绑定(仅服务器应用程序)

SocketBind

监听连接(仅服务器应用程序)

SocketListen

接受连接(仅服务器应用程序)

SocketAccept

用途 功能

获得当前套接字的状态 SocketGetStatus

测试套接字上数据的存在 SocketPeek

下一页继续

64 技术参考手册 - RAPID语言概览

1.10 通信 续前页

用于定义 数据类型

套接字设备 socketdev

套接字状态 socketstatus

用RAPID语言消息队列通信

用于定义 数据类型

rmqheader是数据类型rmqmessage的一部分,用于对消息进行 rmqheaderi 说明。

与RAPID语言消息队列功能通信时所用的通用数据容器 rmqmessage

RAPID语言任务或机械臂应用开发器客户的识别号 rmqslot

命令和启用特定数据类型的中断 IRMQMessage

查找为RAPID语言任务或机械臂应用开发器客户配置的队列识别 RMQFindSlot

获得该任务队列中的第一条消息 RMQGetMessage

从消息中提取出数据 RMQGetMsgData

从消息中提取出标题信息 RMQGetMsgHeader

发送数据至专为RAPID语言任务或SDK客户配置的队列 RMQSendMessage

发送消息,等待答复 RMQSendWait

清空连接执行指令的任务的RMQ RMQEmptyQueue

等到收到消息时或超时 RMQReadWait

i 只有当机械臂具备如下其中至少一种功能(FlexPendant Interface、PC Interface或Multitasking)时。

用途 功能

从给定识别号中获得RAPID语言消息队列客户的名称,而识别号 源于某一给定的rmqslot

RMQGetSlotName i

i 只有当机械臂具备如下其中至少一种功能(FlexPendant Interface、PC Interface或Multitasking)时。

技术参考手册 - RAPID语言概览 65

1.10 通信 续前页

1.11 中断

• 等待指令执行期间的任意时候,如WaitUntil;

• 移动指令执行期间的任意时候,如MoveL。

这通常会导致在识别出中断后要延迟2ms到30ms才能作出反应,具体延时取决于中断 时所进行的运动类型。

可禁用和启用中断。若禁用中断,则可将发生的所有中断列入等待队列,到再次启用 中断前都不会再出现。注意中断队列可能包含不止一起待中断事件。使列队的中断按 FIFO顺序(先进先出)发生。在软中断程序执行期间通常禁用中断。

按步骤运行期间,在程序停止的情况下,不处理任何中断。停止时将舍弃队列中的所 有中断,同时也不会处理停止时发生的任何中断,但安全中断例外,参见第68页的安

全中断。

任意一次确定的最高中断次数限于每个程序任务100次。

编程原理

赋予每次中断一个中断识别号。通过创建变量(数据类型intnum)并与软中断程序相 连,获取该识别号。 CONNECT

下达中断命令

用于下令 指令

中断数字信号输入信号 ISignalDI

下一页继续

66 技术参考手册 - RAPID语言概览

1.11 中断

用于下令 指令

中断数字信号输出信号 ISignalDO

中断一组数字信号输入信号 ISignalGI

中断一组数字信号输出信号 ISignalGO

中断模拟信号输入信号 ISignalAI

中断模拟信号输出信号

中断模拟信号输出信号

在文檔中 技术参考手册 (頁 59-70)