请参阅 第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
中断模拟信号输出信号
中断模拟信号输出信号