AiMaster300 Product Overview
AiMaster300是Lua script programmable IoT controller by Shenzhen Yitian Guanglian Technology Co., Ltd.,集成双Luavirtual machine、丰富的通信接口和强大的data处理能力,是工业物联网领域实现自定义协议转换、data采集、边缘计算和云端对接的高性能可编程平台。该控制器支持Lua脚本编程,用户可根据现场需求灵活开发各种应用逻辑,无需修改硬件即可实现复杂的工业通信和data处理功能。
AiMaster300支持最多4个Luavirtual machine并行运行,每个virtual machine独立执行脚本任务,提供TCP/IP Client/Server、Modbus Master、SQLdatabaseInterface、MQTTInterface、serial portCommunication、实时时钟、data转换等丰富的函数库,Built-in Code Library包含数十种通信示例,可快速开发各类工业物联网应用。
Key Product Features
- Lua脚本可编程:支持标准Lua脚本语言,灵活开发自定义应用逻辑,无需修改硬件
- 多virtual machine并行:支持最多4个Luavirtual machine同时运行(VM1目标port9100,VM2目标port9101),每个virtual machine独立执行任务
- 丰富的函数库:提供TCP/IP、Modbus Master、SQLdatabase、MQTT、serial port、RTC实时时钟、data转换等完整函数库
- Built-in Code Library:预置数十种通信示例代码,包括TCP Client/Server各种模式、Modbus轮询、databaseOperation、MQTT上云等,可直接调用生成
- database网关功能:支持直接连接database网关,执行SQL语句、存储过程,断网data本地存储自动补发
- 断点续传功能:通讯中断时data存储在本机Flash,通讯恢复后由后台服务自动补发,无需开发者干预
- 可视化编程环境:提供Windows编程界面,支持代码编辑、debug、保存上传至控制器运行
Programming Environment Description
编程界面
AiMaster300提供专用的Windows编程软件,界面包含以下功能:
- 代码项目管理:创建、open、保存项目文件
- Edit:Lua代码编辑器,支持语法高亮
- 从代码库生成代码(快捷键Ctrl+D):从Built-in Code Library选择示例代码自动生成
- 代码库管理:管理用户自定义代码库
- 设置:配置网络参数、工作模式等
- 保存并上传至控制器运行(快捷键F9):将代码上传到控制器并运行
- 保存当前项目至database(快捷键Ctrl+S):保存项目文件
工作模式
- 调试模式:EnableDEBUG库及PrintFunction,适合开发调试阶段使用
- 成品模式:禁用调试功能,优化运行性能,适合正式部署
virtual machine配置
支持选择Luavirtual machineQuantity:1、2、3、4个,每个virtual machine独立运行脚本,可分配不同的通信port和任务。
Built-in Code Library
AiMaster300内置丰富的代码库,用户可通过"选择代码"功能直接调用示例代码,快速开发应用:
- Lua基础:Lua函数定义及使用、基本语法、基本例子、脚本调试
- 网络通信:Lua网络服务例子、TCP/IP Client各种模式、TCP/IP Server各种模式
- 工业协议:ModbusMaster终端函数库、Modbusvirtual machineInterface
- database:Sqldatabase接口函数、database操作例子
- 物联网:mqttvirtual machineInterface、云平台例子
- serial portCommunication:serial port函数、serial port轮询slave例子
- 系统功能:动态生成代码、定时器输入、基本输出、data转换、实时时钟
- 应用示例:通用TCP控制远程IO模块、无阻塞连续读取TCP/IP Server读写data等
Core Functions Detailed
TCP/IP ServerFunction
AiMaster300可作为TCP/IP Serverrun,支持多客户端同时连接:
- startserver:启动TCP/IP Server,可设置支持10个客户端同时连接
- 递增port模式:监听port范围7000-7009,接收超时可配置(如20秒)
- 透传模式:支持透传模式启动,实现serial portdata透明传输到网络
- srvwaitrec:等待TCP/IP Server触发接收消息,代码一直停止在此函数,收到data时被触发
- srvreadrecstr:从Server TCP/IP缓冲读取客户端data,data已被保存至缓冲
- srvresp:通知Server此客户端data处理已经完成
- 多客户端管理:支持关闭指定客户端连接、多客户端字符串通讯、多客户端轮询、多客户端透传等模式
TCP/IP ClientFunction
AiMaster300可作为TCP/IP Client主动连接远程服务器:
- startclient:启动客户端服务,以直读直写模式连接指定服务器IP和port
- cliwriteastr:向服务器发送stringdata
- clireadastr:从服务器接收stringdata
- cligetrhost:读取指定索引的客户服务的远程服务器IP和port
- 应用模式:支持hexadecimaldata主动上传、直接读写模式、模拟量通讯、主动上传字符串、主动轮询服务器等多种模式
database网关功能
AiMaster300支持直接连接database网关,实现工业data入库:
- connectodb:与database网关建立TCP/IPconnect,可配置连接参数
- data类型设置:
- setval_string:设置字符串data
- setval_float:设置浮点data,支持保留指定小数位
- setval_int:设置整数data
- setval_dt:设置日期时间data
- datachanged:判断data是否发生变化,仅在data变化时更新database,减少无效写入
- sql_insert:调用SQL insert向database插入一条data,添加失败时data存在本机Flash中,通讯恢复后自动补发
- sql_execproc:执行指定的存储过程,数组接收存储过程返回的结果集
- execsql:执行标准SQL语句,支持update、select、select count等操作
- 断点续传:断网时data存储在本机Flash,通讯恢复后由后台服务自动补发,无需开发者干预
Modbus MasterFunction
AiMaster300内置Modbus MasterFunction,可主动轮询Modbus RTUdevice:
- modmaster.readrtu:通过serial portreadModbus RTUdata,支持设置读取的serial port、Modbusslave站号、读取的寄存器数量、data格式等参数
- 返回dataParse:支持浮点数解析,可将读取的原始data转换为工程值
- 多设备轮询:支持循环轮询多个slavedevice,每个设备可配置不同的站号和寄存器
serial port通信功能
AiMaster300提供灵活的serial port通信函数:
- lib_uart.queryuart:用serial port执行一次轮询,queryuart为serial port轮询函数,可发送任意data并接收slave返回data
- lib_uart.uart_rxnw:非阻塞式接收serial portdata,支持设置超时时间,达到超时未收到data则返回第一个字节后继续执行后续命令
- Custom Protocol:支持发送任意data,可以为任意data,但需要符合slave的通讯协议规范
- data打印:debug.printarray可打印数组内容,方便调试
系统功能
- rtc.getdatetime:读取实时时钟时间和日期
- syslib.ossleep:currentvirtual machine睡眠指定毫秒数,释放CPU资源,参数有效值为0~60000毫秒
- 多virtual machine调度:多个virtual machine通过sleep函数主动让出CPU,实现协作式多任务
- data转换:提供丰富的data类型转换函数,支持数值型和字符串型dataParse
Typical Application Development Examples
example1:Modbusdata采集入库
通过modmaster.readrtureadModbus RTUdevicedata,判断data变化后通过sql_insert写入database,断网时data本地存储自动补发。
example2:TCP透传服务器
通过startserver启动TCP Server,支持10个客户端同时连接,使用srvwaitrec等待data、srvreadrecstrreaddata、srvresp完成处理,实现serial portdata透传到网络。
example3:主动上传至云平台
通过startclient连接云服务器,使用cliwriteastr定时上传采集data,clireadastr接收云端下发的控制指令。
example4:自定义协议轮询
使用lib_uart.queryuart发送自定义协议帧,receiveslave返回data,解析后进行处理或上传。
Technical Specifications
| 参数项 | 规格 |
| 编程语言 | LuaScript |
| Luavirtual machine | 最多4个并行运行(VM1port9100,VM2port9101) |
| TCP/IP | 支持Client和Server模式,Server支持10个客户端同时连接 |
| 工业协议 | Modbus RTU Master |
| database | 支持SQLdatabase网关,执行SQL语句和存储过程,断点续传 |
| 物联网协议 | MQTT客户端 |
| serial port | 支持多路RS485/RS232,非阻塞式接收 |
| 实时时钟 | 内置RTC,支持读取日期时间 |
| data存储 | 内置Flash,支持断网data本地存储自动补发 |
| 编程环境 | Windows专用编程软件,支持调试模式和成品模式 |
| 代码库 | 内置数十种通信示例代码 |
| Installation method | DIN rail mounting |
| 工作温度 | -40℃~85℃Industrial Grade |
Typical Application Scenarios
- 工业data采集入库:采集Modbusdevicedata,直接写入SQLdatabase,断网自动补发
- 协议转换网关:通过Lua脚本实现任意serial port协议到TCP/IP、MQTT的转换
- 边缘计算控制器:在本地完成data处理、逻辑判断、报警输出,减少云端压力
- 自定义协议设备联网:支持任意serial port协议设备的data采集和上传
- 云平台对接:通过MQTT或TCP主动上传data至各类云平台
- 多设备集中监控:多virtual machine并行运行,同时处理多个通信任务和设备
Leave a Reply