cab 与智能工厂:
借由 OPC 统一架构进行标识的连线作业

需求

在工业领域,有越来越多的生产及物流环境以数字化制造管理系统为基础。机器与人或其他机器进行信息交换,自主处理与制造相关的数据,提供或转发数据。个性化、可扩缩性、精实、制造过程的可追溯性以及可靠的设备及零组件是关键需求。

作为管理系统基础的大多数应用程序或服务皆由网络代管。来自感测器、设备或软件的数据被传输到云主机,并可以在条码打印机或贴标系统、机器人及 IT 系统之间轻易地进行交换 - 前提是它们都说同样的语言且可以互相理解。

协议

开放平台通信统一架构 ( 缩写为 OPC UA ) 为工业环境中由不同制造商生产的机器及零组件之间的信息交换建立了基础。在 OPC 统一架构中,各种不同的规格被转换成一致性的数据模块,从而建立了新的传输接口标准。OPC 统一架构负责触发工业制造中的网络,这部份与我们对办公室中的网络及 USB 传输接口的认知相同。

OPC UA

连接 cab 的设备

您将一家工厂投入运作?或是规划将您的原料仓库依据工业 4.0 的建议与网络连线?如果网络的 IP 地址已就绪,OPC 统一架构可以作为机器设备间进行信息获取的一致性框架。目前新一代的 cab 条码打印机及快速贴标机 IXOR 已完成 OPC 统一架构的集成,适用于工厂内的零组件、产品或包装标识。这些设备能够跟上层控制单元进行协作。

Industrie 4.0
 

重点一览

  • 依需求生产
  • 制程自动化
  • 设备配置
  • 设备的远程控制
  • 设备监控
  • 互操作性
  • 预测及分析
  • 可追溯性
  • 库存最佳化
  • 距离缩短
  • 透明性

事件驱动标识

按下按键查询条码打印机进行中的工作已经是过去式了。现今的智能设备会自动显示保养的需求、打印工作使用的耗材或是碳带即将耗尽必须更换的信息。可以远程安装标签,也可以读出标签特性及交换打印用的可变数据。即时显示操作参数,例如打印头目前的运作性能及温度,或是待打印的标签数量。信息由条码打印机传送至工厂的控制系统,控制系统负责辨识及解译信息,并会直接采取适当的处理措施。

作为一个功能卓越的控制系统,OPC 统一架构具备将软件控制的生产数据、警示、事件及数据历史集中在同一处的优势。它集成并统一了不同的地址空间以及供获取的传输接口。



OPC 统一架构的应用视频

借由 OPC 统一架构进行标识的连线作业

查看视频


OPC 统一架构搭配 cab 条码打印机

cab 设备*目前支援的 OPC 统一架构功能如下:

  • 协议栈
         OPC 统一架构二进制协议
  • 加密
         无
         Basic128Rsa15
         Basic256Sha256
  • 验证
         匿名
         用户名称 / 密码

尽管通过完全验证的用户对现有的功能拥有完整的权限,匿名用户对条码打印机的结点只有只读的权限,并且无法呼叫方法 ( 即使该方法不会变更条码打印机的配置或状态 )。

  • OPC 统一架构服务
         SecureChannel Service Set
         Session Service Set
         Attribute Service Set:属性、事件、非历史数据的读出 / 写入
         Method Service Set
         MonitoredItem Service Set
         Subscription Service Set
         View Service Set

OPC 统一架构的服务器端可在设置 / 传输接口 / 网络服务启用。

* 条码打印机 SQUIX, MACH 4S, EOS2, EOS5, HERMES Q, PX Q, 快速贴标机 IXOR

信息模块

cab 条码打印机实践了 OPC 统一架构的设备集成 ( DI ) 模式。有两个名字空间可供使用:

http://cab.de/printer 用于监控及管理打印工作
http://cab.de/printer/setup 用于设备设置

页面下方列出的功能符合现况,有更多的功能持续进行开发中。

Industrie 4.0

名字空间 http://cab.de/Printer

此名字空间可获取条码打印机的目前状态,包括 I/O 状态、条码打印机型号信息或任何关于目前作业状态的信息。

结点名称 结点类别 描述
Printer 物件 存取条码打印机信息模块的主入口点
FPGARevision, Manufacturer,
Model, SerialNumber,
SoftwareRevision,
HardwareRevision
变数 提供硬件及软件的版本信息
Bitmap 方法 最后一张打印的标签可存取为 .png 格式
Screen 方法 提供 .png 格式的条码打印机屏幕截图
I/O 物件 提供透过条码打印机 I/O 接口进行获取的软件;透过
IOStatusChangeEvent 产生
LBLWARN 变数 预先警示标签用完
RIBERR 变数 碳带耗尽
RIBWARN 变数 预先警示碳带用完
SetInput 方法 设定 I/O 接口的写入信号:PAUSE, LBLROT
LabelBitmap 方法 将目前的标签打印内容转成 .png 格式。不同于 bitmap 方法,标签方向及尺寸在此会列入考量。
ENDPOS 变数 贴标手臂位于贴标位置
ERROR 变数 错误
FEEDON 变数 正在进纸
HOMEPOS 变数 贴标手臂位于吸标位置
JOBRDY 变数 打印工作已就绪
MEDERR 变数 标签或碳带耗尽
PEELPOS 变数 标签就剥离位置
READY 变数 条码打印机已就绪
I/O Status 变数 I/O 接口的读出状态,由下列变数的数值组合定义:
RIBWARN 1  HOMEPOS  8  ERROR    64  RIBERR  512
ENDPOS  2  PEELPOS 16  READY   128  MEDERR 1024
FEEDON  4  JOBRDY  32  LBLWARN 256 
( 部份仅限于 HERMES Q )
TriggerInput 方法 触发 I/O 接口的写入信号:
FSTLBL, REPRINT, START, LBLREM, JOBDEL, RSTERR, STOP, LBLFEED
Interpreter 物件 工作状态的信息;透过
ErrorEvent, JobInfoEvent 以及 JobFinishEvent 产生
JPhase 变数 JScript 解译器的目前状态
QueryObject 方法 查询现有的 JScript 物件
Current Label 物件 解译器处理打印工作时可用
Current Id 变数 目前打印工作的专属工作 ID
Current Name 变数 工作名称;由 JScript 的j 指令提供目前打印工作的名称
Current Content Fields 物件 目前标签动态字段的根结点。字段内容可以借由设定相关结点的数值作替换。
abc Status 变数 abc basic 解译器的状态:
one of Idle, Compiling, Running, RuntimeError, SyntaxError
Active 变数 条码打印机作业中,例如打印档案的解译或打印
Available Space 变数 打印队列可用的内存空间 ( 以百分比为单位 )
ESCs 变数 字符串 ( 包括 JScript's ESCs 指令的结果 )
ESCz 变数 字符串 ( 包括 JScript's ESCz 指令的结果 )
Error 变数 提供详细的错误信息,例如 ESCs 指令的相关信息;
数值必须解译为 ASCII 字符,例如 45 == '-' No Error
Labels To Print 变数 目前打印工作打印的标签数量
Last Job 变数 最近一次处理的打印工作名称;参见 JScript 指令 j
Online 变数 条码打印机为 ONLINE 状态,也就是图形用户界面的显示内容为首页
Paused 变数 条码打印机为 PAUSE 状态
CancelJob 方法 允许取消目前打印工作
LoadLabel 方法 允许从条码打印机上传标签档案
PrintData 方法 允许直接传送 JScript 打印数据至条码打印机
TotalCancel 方法 允许中止所有打印工作
Ribbon 物件  
Ribbon RibbonDiameter 变数 侦测到的碳带直径 ( 以毫米为单位 )
Ribbon RibbonLow 变数 根据条码打印机的菜单设定判断剩余的碳带是否不足
Statistics 物件  
Statistics Labels 变数 标签的打印数量
Statistics Operating Time 变数 条码打印机的正常运作时间 ( 以分为单位 )
Statistics Thermal Direct 变数 以热感印打印的标签纸长度 ( 以毫米为单位 )
Statistics Thermal Transfer 变数 以热转印打印的标签纸长度 ( 以毫米为单位 )
Paper    
Paper Diameter 变数 计算送纸器内剩余标签的直径 ( 以毫米为单位,仅限 HERMES Q )
Paper Low 变数 根据条码打印机的菜单设定判断剩余的标签是否不足 ( 仅限 HERMES Q )
SubDevices 物件  
Applicator* 物件  
Barcode Verifier* 物件  
Cutter* 物件  
Cutter* Can Perforate 变数 搭配虚线切刀
Cutter* Has Stacking Box 变数 搭配的切刀附有裁纸收集盒
Demand Sensor* 物件  
     Sensor Status 变数 感测器的目前状态
Rewinder* 物件  
Ribbon Saver* 物件  
Ribbon Sync 变数 碳带节省装置已完成初始化
Ribbon Head State 变数 打印头的目前位置 ( PrintingSaving )
Ribbon Synchronize 方法 发布碳带节省装置的同步指令;仅与服务工作相关
Ribbon ToggleHead 方法 切换打印头的位置;仅与服务工作相关
TPH 1 物件 打印头信息
TPH 1 Model 变数 打印头的型号信息
TPH 1 SoftwareRevision 变数  
TPH 1 Open 变数 开启状态
TPH 1 SerialNumber 变数 打印头序号
TPH 1 Temperature 变数 打印头的目前温度 ( 摄氏 )
TPH 1 Statistics 物件 打印头的统计数据
Storage 物件  
FileDelete 方法 删除条码打印机内部的一个档案
FileDownload 方法 将条码打印机的一个档案下载至客户端
FileList 方法 列出条码打印机内部的所有档案
FileUpload 方法 将客户端的一个档案下载至条码打印机
FontList 方法 查询条码打印机的可用字型
IFFS 物件 内部闪存档案系统 ( IFFS )
IFFS IFFS Available Space 变数 档案系统的可用空间 ( KB )
IFFS IFFS Capacity 变数 档案系统的容量 ( KB )
SD Card 物件  
SD Card SD Card Attached 变数 指示是否附加档案系统
USB Memory 物件  

* 可选结点,仅在附加服务密钥时可用

重要提示:依据 OPC 统一架构的设备集成规格,必须始终在设备的 MethodSet 中呼叫方法 ( 即使方法在指定的机制上与个别的 FunctionalGroup 链结较佳 )。透过 FunctionalGroup 呼叫始终会出现错误。

名字空间 http://cab.de/Printer/Setup

此名字空间对条码打印机的配置树拥有完整的权限,该配置树的建模方式与图形用户界面的设置级别相同。树中组态参数的实际位置可能会有变动,因此透过它的浏览路径呼叫结点是不安全的。相反地,配置结点可以透过它们唯一的字符串识别码直接获取。

结点名称 结点类别 描述
Setup 物件 Printer 结点的此一子结点为获取条码打印机设置的主入口点;透过 SetupValueChangeEvent 以及 SetupVisibilityChangeEvent 产生
SetOpcUaClientUrl 方法 储存 OPC 统一架构的服务器地址 ( 用于脱机模式 )
ExportSettings 方法 将条码打印机设置导出为 .xml 格式
ImportSettings 方法 将条码打印机设置导入为 .xml 格式
ImportCertificateTLS 方法 导入 TLS 认证
ResetSettings 方法 恢复出厂设置
ResetPasswords 方法 恢复出厂设置密码
<SetupFolder> 物件 包括设置值
             <SetupValue> 物件 可编辑的设置值
                    IsActive 变数 该组态参数目前可在图形用户界面中获取

以下为可用的设置值类型:

  • 布尔
  • 列举
  • 字符串值 ( 包括字段 )
    MinLen
    MaxLen
    Regex ( 一个可选的正则表达式,用于属性值的写入操作 )
  • 值 ( 包括字段 )
    Range
    Step
    ToggleInt ( 可选,为显示用途 )
    Unit ( 可选,为显示用途 )
  • 密码 ( 包括最小及最大的长度属性,如同字符串值 )

重要提示:依据 OPC 统一架构的设备集成规格,必须始终在设备的 MethodSet 中呼叫方法 ( 即使方法在指定的机制上与个别的 FunctionalGroup 链结较佳 )。透过 FunctionalGroup 呼叫始终会出现错误。

事件

在 OPC 统一架构的标准事件以外,cab 条码打印机提供下列的补充事件。

事件名称 类型 描述
ErrorEvent   事件在条码打印机出现错误时传递;透过结点解译器产生
Message LocalizedText 错误信息
Detail1 LocalizedText 详细错误信息
Detail2 LocalizedText 更多的详细错误信息
JobInfoEvent   事件在标签打印时传递;透过结点解译器产生
LabelNo Int32 进行的打印工作中的标签数量
JobSize Int32 进行的打印工作中打印的标签数量
IsTestPrint 布尔 显示目前打印的标签为测试打印
JobFinishEvent   事件在打印工作完成且条码打印机返回闲置状态时传递;透过结点解译器产生
没有其他字段    
SetupValueChangeEvent   事件在设置值变更时传递;透过结点设置产生
SourceName 字符串 受影响的组态参数的识别码
SetupVisibilityChangeEvent   事件在设置值变更其可见性状态时传递,通常是基于相互依赖;透过结点设置产生
SourceName 字符串 受影响的组态参数的识别码
IOStatusChangeEvent   事件在设备的 I/O 状态变更时传递;透过结点 I/O 产生
Status UInt32 Printer->IO->Status 描述的条码打印机最新状态

限制:OPC 统一架构的堆栈实作目前不支援:

  • 在单一订阅中有不同类型的受监控项目 - 变更通知事件通知 - 但单一订阅中有多个相同类型的受监控项目是被允许的
  • 受监控项目请求中的 Where 子句
  • 警示及条件

条码打印机内的 OPC 统一架构客户端支援

使用 JScript 的特殊指令 OPCUA 可让脱机模式的条码打印机从 OPC 统一架构的服务器端读出数据并将其插入标签配置中:

   m m
   J
   H 75,0
   S l1;0,0,25,29,50
   E OPCUA;opc.tcp://192.168.200.71:4840
   T 20,20,0,3,10;[OPCUA:2:DeviceSet,3:Printer,2:SoftwareRevision]
   A 1

为了能够在多个 OPC 统一架构的服务器端之间寻址而使用插槽的概念。可以将插槽号加入 OPCUA 的授权,这样最多可以查询五个不同的服务器系统:

   m m
   J
   H 75,0
   S l1;0,0,25,29,50

   ; 使用一组用户名称及密码连线
   E OPCUA-0;opc.tcp://opcuser:opcpass@192.168.200.71:4840

   ; 匿名连线
   E OPCUA-1;opc.tcp://192.168.200.53:4840

   T 10,10,0,3,10;SW Rev Drucker 1: [OPCUA-0:2:DeviceSet,3:Printer,2:SoftwareRevision]
   T 20,20,0,3,10;SW Rev Drucker 2: [OPCUA-1:2:DeviceSet,3:Printer,2:SoftwareRevision]
   A 1

作为指定浏览路径的替代方案,也可以在 OPCUA 特殊指令中为数据查询指定结点 ID:

   m m
   J
   H 75,0
   S l1;0,0,25,29,50
   E OPCUA;opc.tcp://192.168.200.71:4840
   T 20,20,0,3,10;[OPCUA:ns=3;i=50723]
   T 10,10,0,3,10;[OPCUA:ns=4;s=ID_BACKFEED]
   A 1

可支援以下的数据类型:

  •      整数
  •      浮点数
  •      字符串, ByteString, XmlElement
  •      布尔值
  •      LocalizedText
  •      DateTime
  •      Range
  •      EUInformation
  •      列举

连线信息不一定必须储存在标签,可以改为储存在条码打印机的全域配置。OPC 统一架构的函数 SetOpcUaClientUrl 用于此目的。借由指定需要的插槽及要用的地址,最多可以在此处储存五种不同的连线信息。在这种情况下可忽略标签中的 E 指令。

Industrie 4.0 with cab devices

 


 

2021 年 1 月

Headquarters

cab Produkttechnik GmbH & Co KG
Wilhelm-Schickard-Str. 14
76131 Karlsruhe
Germany

+49 721 6626-444
请写信至我司电子邮件信箱

Sales Office Asia

cab Technology Co., Ltd.
希愛比科技股份有公司
新北市中和區中正路700號16樓之1
电话: +886 2 8227 3966
info.asia@cab.de

Sales Office China

cab (Shanghai) Trading Co., Ltd.
200335 上海市长宁区金钟路999号D栋908室
电话: +86 21 6236 3161
info.cn@cab.de

Sales Office Singapore

cab Singapore Pte. Ltd.
59 Ubi Avenue 1 04-13
Singapore 408938
电话: +65 6931 9099
info.asia@cab.de


cab 微信公众号:
透过关注可获得我司最新讯息

WeChat