协议
模拟
登录后可跨设备保存划线和私人笔记登录
模拟驱动在客户端进程中维护自身状态,不与任何真实设备通信。它的存在是为了让 PLC4X 的功能在没有可连接的 PLC 的情况下也能被测试和演示;在学习 PLC4X 时,大多数人最先上手的就是这个驱动。
支持的操作
| 名称 | 值 | 描述 |
|---|---|---|
read | 支持下文列出的所有标准 IEC 61131 数据类型。 | |
write | 支持下文列出的所有标准 IEC 61131 数据类型。 | |
subscribe | 仅限 Java,且是真实实现而非轮询模拟:它直接支持 CYCLIC、CHANGE_OF_STATE 和 EVENT 订阅。Go 驱动的订阅者只是一个桩实现,并不会真正订阅。 |
连接字符串
模拟驱动完全在进程内运行,从不打开任何传输通道。连接字符串指定的是一个内存中的设备,而不是地址:
simulated:{device-name}一个示例连接字符串如下:
simulated:foobar每次调用都会创建一个全新的内存设备;通过某个连接写入的值不会在其关闭后保留,且不同连接之间不会共享设备。
连接字符串选项
名称
类型
默认值
必填
说明
名称
模拟 PLC4X 数据源
代码
simulated
Maven 依赖
<dependency>
<groupId>org.apache.plc4x</groupId>
<artifactId>plc4j-driver-simulated</artifactId>
<version>1.0.0</version>
</dependency>支持的传输协议
配置选项:
标签地址
寻址功能已在 C、Go 和 Java 中实现。有关各实现具体支持的情况,请参阅 协议支持矩阵。
通用格式
模拟地址的格式如下:
{simulation-type}/{alias}:{data-type}[{array-size}]如果省略数组大小部分,则默认大小为 1。如果省略数据类型部分,则默认为 STRING。
| 数组选择使用共享的表示法——单个索引、闭区间范围,以及可选的数组声明下界(置于类型之前)。参见数组寻址。 |
|---|
仿真类型
仿真设备支持 3 种不同的仿真类型
- STATE - 为给定的别名在内存中保存一个值。该值可以读取或写入,但应仅与持久连接配合使用。一旦连接关闭,内存区域即被清空。
- RANDOM - 每次读取都提供一个新的随机值。写入时会记录一条日志消息,并丢弃该值。
- STDOUT - 读取时始终返回 null 值。写入时会记录一条日志消息,并丢弃该值。
别名
别名用于标识不同的字段地址。它们只能包含字母数字和句点(.)字符。为了可读性以及语言相关的技术限制,其长度应小于 256 个字符。
数据类型
支持以下数据类型:-
- BOOL(布尔)
- SINT(int 8)
- USINT(uint 8)
- BYTE(uint 8)
- INT(int 16)
- UINT(uint 16)
- WORD(uint 16)
- DINT(int 32)
- UDINT(uint 32)
- DWORD(uint 32)
- LINT(int 64)
- ULINT(uint 64)
- LWORD(uint 64)
- REAL(float)
- LREAL(double)
- CHAR(char)
- WCHAR(2 字节字符)
- STRING(254 字节)
示例
以下所有地址格式都是有效的:-
- RANDOM/foo:INT
- RANDOM/foo:UDINT
- RANDOM/foo[0..7]:INT
- RANDOM/test[0..1]:DINT
- STATE/bar:DINT
- STATE/foo:String
- STDOUT/foo:BOOL
说明与提示
仿真驱动使用了与其他驱动大量相同的逻辑模板。在没有可连接设备的情况下,它是测试 PLC4X 功能的好方法。
评论
登录后参与评论
正在加载评论…
KnowForge