AiMaster300 IoT Programmable Edge Computing Gateway: Lua Script Custom Protocol Conversion

freeFree Technical Resource

This content is free to read, suitable for basic learning and search traffic.

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 methodDIN 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并行运行,同时处理多个通信任务和设备
Put this resource to use in a real project?

Go to the Tool Center for message parsing, CRC verification and device debugging, or submit your requirements for selection and integration advice.

Engineer Membership

Turn this article into actionable debugging resources

After activation, you can use advanced message parsing, resource pack downloads, code examples, engineering cases and priority technical support, suitable for real project delivery.

Unlimited Advanced Tools
Resource & Code Packs
Complete Engineering Case Library
Priority Technical Support

Leave a Reply

Your email address will not be published. Required fields are marked *.