所有脊椎动物的核心是感知环境、制定并执行相应行动的能力, 而这种能力对于现在社会的所有人造机器来说也越来越重要. 这就是智能物联网IoT (Internet of Things)背后的驱动力. 家庭、企业、政府和部署传感器、收集数据以提供智能决策并对环境作出反应的系统, 可以为人类创造一个更安全、更可持续、更舒适、更健康和更经济可行的世界[1,2].
根据《中国制造 2025》规划指出, 通过把信息化和工业化深度融合作为核心, 辅以云计算、物联网、大数据与现代制造业、生产性服务业等的融合创新, 发展壮大新兴业态, 打造新产业增长点. 在目前的纺织工业领域中, 纺织机械设备已经从机械传动全面转型到自动化电子控制,实现电子成型. 但对于如今层出不穷的物联网新技术来说, 远远没有达到智能制造的标准, 生产制造各环节的效率还有很大的提升空间[3], 国外意大利的萨维奥机械制造公司以实现应用于纺纱机械的在线管理系统Savio Winder 4.0, 日本村田机械公司也展示了其基于物联网的智慧监控工厂. 国内也有应用纺织机械的E系统和TIS系统, 发挥出了不错的效果.
为提高纺织机械中倍捻机的工作效率, 降低成本, 减少工人劳动强度. 本文设计了一种基于物联网的倍捻机监控系统, 该系统能实时检测锭子速度和纱线的断纱情况, 并提供一种驱动剪刀的能力. 当发生断纱时, 驱动剪刀剪断纱线, 同时系统会点亮红色报警灯提醒工人处理断纱问题, 以及云端展示设备运行参数的功能.
1 系统构成及功能需求分析 1.1 系统方案本倍捻机监控系统由云下系统和云上系统两部分组成. 其中云下系统又分为3模块: 锭子管理器、节点控制器、DTU网关; 云上系统分为MQTT服务器、MySQL服务器和Web远程监控平台.
纺织倍捻机[4]通常一节32个锭位, 本文的锭子管理器同时监控4组锭子, 因此需要安装8块锭子管理器监控锭子的断纱状态, 也同时需要8块锭子管理器用来实现断纱后驱动剪刀剪纱的功能. 锭子管理器之间的通信基于RS485的Modbus协议实现, Modbus将所有的锭子管理器采集的传感器数据汇集到节点控制器处理, 处理完成后通过Modbus将反馈数据发送给特定的锭子管理器. 同时, 节点管理器将汇总好的数据利用另一组Modbus串口发送给DTU网关, 网关进行部分的边缘计算后对数据打包, 然后通过4G模块将数据帧传输置云端监控平台. 云端监控平台的功能一方面是解析打包数据并分析, 另一方面是以最直观的方式展示实时数据.
1.2 功能需求分析基于物联网的倍捻机监控系统具有以下功能特点:
1) 实时检测锭子速度和纱线是否断纱;
2) 自动报警和剪纱功能;
3) 智能模块实现即插即用, 支持热插拔;
4) 智能模块从站站号支持自学习自动编址, 无需手动写入站号地址;
5) 多用户登录, 对不同的用户有不同的权限;
6) 从Web端实时查看设备的运行状态.
基于上述功能需求, 本文将重点介绍系统的功能设计和实现, 并详细说明智能模块实现通信的软件和硬件设计思想.
2 硬件设计 2.1 锭子管理器锭子管理器的硬件如图1所示, 由以下5个部分构成: 基于STM8S003F3P6的主控芯片、电源电路、RS485接口电路、输入驱动电路和输出驱动电路[5,6].
STM8S003F3P6是ST公司推出对标51芯片高性价比8位单片机, 主频最高达到16 MHz, 包含I2C, IrDA, LIN, SPI, UART/USART多种通讯外设, 程序存储容量16 KB, 内置EEPROM存储, 完全满足本智能模块的运行和运算需求.
电源电路如图2所示, 它的功能是将外部接入的24 V直流电压提供给断纱传感器和输出剪刀提供电源, 同时将另一部分降压稳压到5 V直流电压, 为主控芯片提供电源.
RS485接口电路如图3所示, 是本锭子管理器模块的核心部分, RS485硬件接口采用RJ45插座和RJ45水晶头组合, 模块的外部24 V输入电源线、RS485信号线、自动编址线集成到网线, 网线中分配多根连接线用于输入24 V电源, 提高了模块的输入功率; RJ45的引针1、2作为RS485的发送引脚A和接收引脚B; 左侧RJ45的引针3直连到主控芯片的GPIO的SIG_ACK引脚上, 作为输入信号读取上一级输出信号, 右侧RJ45的引针3则直连到主控芯片的CTL_ACK引脚上, 用作输出信号传输电压信号给下一级的模块的SIG_ACK输入引脚. Modbus从站的自学习自动编址功能, 基于上述的SIG_ACK和CTL_ACK单总线实现.
2.2 节点控制器
节点控制器基于ARM® Cortex®-M0内核的STM32F030芯片开发, 和锭子管理器、网关分别构建两个独立的Modbus网络[7-9]. 该控制器作为锭子管理器端Modbus主站, 接收所有从站数据和数据处理, 如果发生断纱, 连接在此控制器的报警灯就会驱动报警, 闪烁红灯. 在网关所在Modbus网络中, 节点作为Modus从站, 实时接收网关下发的查询命令和写入命令.
2.3 网关本系统网关选择的4G-DTU模块, 采用EC20内核, 支持TCP/IP协议、MQTT协议、HTTP协议等多种协议[10]. 支持二次开发, 极大的提升效率, 缩短开发时间. 网关初始化有两种模式选择, 一种是独立使用EC20模块屏蔽DTU的主控芯片控制, 另一种是通过主控芯片驱动EC20模块, 进行二次编程开发. 网关的工作电压3.3–4.3 V, 本系统使用工作电压3.8 V, 因为用边缘值电压, 电压波动会造成模块工作不稳定, 电源电路图如图4所示. 网关的作用是连接互联网和传感网, 将传感网汇总数据打包通过4G网络和MQTT应用层协议传输到MQTT服务器端, 然后MQTT服务器转发到MySQL服务器储存数据, 同时网关作为MQTT客户端也实时接收MQTT服务器下发的数据帧, 然后解析下发到节点网络. EC20模块支持多种工作模式, 如表1.
最少功能模式可以将模块功能减少到最少程度, 此模式可以通过发送AT+CFUN=<fun>命令来设置. <fun>参数可以选择0, 1, 4.
3 软件设计 3.1 云下系统: 采集与控制系统设计
云下数据采集系统的执行流程: 系统上电, 各模块初始化, 系统初始化检查自动编址标志位, 判断是否需要将锭子管理器从站地址重新按顺序编址. 无需自动编址时, 节点控制器主站从EEPROM中读取第一次运行时获取和储存的各个从站的全球唯一ID码, 再通过Modbus通信轮询获取从站的全球唯一ID码, 将EEPROM中读取的ID和在从站获取的ID码进行比较是否一致, 如不一致则报“从站ID码异常”报警, 至此设备初始化成功, 运行准备就绪. 采集模块数据的状态保存在 USERPARAM结构体:
typedef struct //控制 IO 输入输出状态结构体
{
uint8_t STM8S_ID[12]; //全球唯一 ID 码
uint16_t input[4]; //4 组探丝传感器状态
uint16_t output[4]; //4 组剪丝器状态
uint16_t slaveAddr; //从站号地址
}USERPARAM
图5为云下系统初始化流程图, 在系统第一次部署或重新部署时, 系统初始化进入自动编址模式. 第1步, 主站通过Modbus向所有从站广播重新编址数据帧, 当从站接收到广播后, 会自动进入编址模式, 监控SIG_ACK端口电平信号; 第2步, 主站向1号从站使用CTL_ACK输出高电平信号, 1号从站监控到端口电平变化, 发送携带自身全球唯一ID码的Modbus数据帧给主站, 并将自身从站号改成临时从站号0xFF; 第3步, 主站接收来自从站的全球唯一ID码, 按从站排列顺序分配从站号, 将全球唯一ID号和从站号绑定, 存入EEPROM存储器, 接着向0xFF从站发送分配从站号数据帧, 等待从站响应确认数据帧; 第4步, 从站修改将新从站号写入掉电保持寄存器, 回复写入确认数据帧, 拉高CTL_ACK端口电平, 下一级从站过程同上. 当所有从站号分配完成后, 系统初始化成功, 准备就绪. 运行阶段节点模块调用check_inputStatus()函数轮询读取锭子状态,并保存数据到节点模块的相应结构体中, 数据结构如下所示:
typedef struct
{
uint32_t runsign;
uint32_t input;
uint32_t output;
uint32_t shieldFlags;
uint8_t slaveID[SLAVENUM][ID_LENGTH];
uint32_t startDelay;
uint32_t midwayRecoveryDelay;
uint32_t scissorCount[SCISSORNUM];
}USERPARAM;
typedef struct
{
uint16_t reSendTimeoutALARAM;
uint8_t slaveNumberErr;
uint16_t slaveID_Conflict;
uint8_t autoAddrErr:1;
}ALARAM;
图6为云下系统传感网组网图, 采用Modbus通信协议[11]组成传感网络, 倍捻机数据上传到云端服务器基于TCP/IP的MQTT[12]协议实现.
3.2 云上系统: IOT监控系统设计IoT监控系统的通信协议主要包括两个部分, MQTT物联网协议和HTTP超文本传输协议. 系统的功能实现基于MQTT服务器、MySQL数据库、Web服务器, 部署于阿里云的Linux云服务器, 通信逻辑和交互过程如图7所示.
IoT监控系统中的MQTT服务器负责订阅、转发MQTT客户端消息和客户端的权限管理, 防止非本系统允许的MQTT客户端接入本监控系统. 位于IoT监控系统中的MQTT客户端是运行于Web服务器进程内的子线程, 用于接收MQTT服务器数据并转存入MySQL数据库或读取数据库数据发布至MQTT服务器, 最后转发到目的MQTT客户终端.
Web服务器: 基于Django 3.0.7版本实现, 采用MTV (model-template-views)开发模式[13,14], 如图8所示.
IoT监控系统实现主要功能: (1) Web服务器通过Ajax技术[15]轮询实时呈现监控数据做到可视化大屏; (2)实现在线修改编辑工艺参数并调用MQTT客户端接入MQTT物联网协议网络, 实现下发修改数据或者手动拉取终端设备监控参数、工艺参数、设备参数等功能; (3)多用户权限管理, 根据工厂员工的职位差别给予不同的网页权限管理.
RBAC是基于角色的访问控制(role-based access control), 在 RBAC中, 公司权限与公司的角色相联系, 用户通过成为适当角色的成员而得到这些角色的权限. 极大地简化了权限的管理. 这样管理都是层级相互依赖, 权限赋予给角色, 而把角色又赋予用户, 权限设计清楚, 管理方便, 图9为多用户权限管理后台页面.
4 系统测试 4.1 云平台环境配置
1) 操作系统: Ubuntu 18.04 64位
2) CPU: 1核、内存: 2 GiB、使用带宽: 1 Mb/s
3) MySQL 5.7.30/Django 3.0.7/Mosquitto 1.6.9
4.2 实时状态监控倍捻机设备如图10所示, 其分布了多个速度检测传感器、断纱检测传感器和剪刀模块. 其中这些传感器共同构成了本系统的传感器网络, 收集卷绕、上锭、罗拉、下锭、氨纶的速度和每个锭位纱线的断纱状态. 系统运行主要分成两个部分: 云下系统和云上系统,云下系统使用基于RS485的Modbus协议, 波特率为9 600 b/s, 轮询查询传感器的状态并处理. 对于云上系统和云下系统的通信, 本系统提供3种方法: (1) 按一定时间间隔固定发送数据到云端, 其中时间间隔可以设置, 以适应不同的应用场景. (2) 触发式上传, 当云下系统的传感器检测到异常时, 才主动上传数据到云端系统, 此模式可以有效节省数据流量. (3) 云上系统主动拉取云下数据模式.
系统运行实例: 当系统开始运行, 节点控制器轮询读取锭子管理器上的锭子状态和倍捻机电机转速, 将数据汇总处理, 如有速度异常或断纱异常, 系统本地红灯报警, 锭子管理器驱动剪刀剪线停止卷绕过程, 同时上传到云平台, 用户可访问网页实时查看和分析设备数据, 设备故障情况. 图11和图12显示了网页实时显示监控数据的情况, 图13为倍捻机工艺参数设置页面.
经过系统测试, 云下系统基本能实现纱线断纱故障快速处理, 模块驱动剪断废料纱线, 避免了原材料的浪费. 云上系统的实时监控功能为操作工减少了约3小时工作量, 取消长时间的巡逻检查锭子纱线的卷绕环节, 只需关注系统警报. 车间的管理员可以在PC端或手机端实时查看车间电子成型设备的运行情况, 提高了工人25%的工作效率, 减少了约2.1%的原材料成本.
5 结语本文设计并实现的一种基于物联网的倍捻机监控系统, 分为云上系统和云下系统两部分, 云上系统Web服务器可实时获取倍捻机运行关键位置速度和纱线异常情况, 有利于确保整个纺织机械设备的安全可靠的运行. 整个系统采用模块化处理, 具备良好的可扩展性、稳定性和可移植性, 云下系统采集传感器数据的智能模块(锭子管理器)选用的是STM8S003微处理器, 其外设多, 性能高, 成本低廉, 易于大量应用和移植, 整个系统已经应用在倍捻机设备测试机上并经过实验测试, 数据可靠, 运行稳定, 在一定程度上提高了工人的工作效率, 减低了生产成本.
[1] |
Javed F, Afzal MK, Sharif M, et al. Internet of Things (IoT) operating systems support, networking technologies, applications, and challenges: A comparative review. IEEE Communications Surveys & Tutorials, 2018, 20(3): 2062-2100. |
[2] |
Merritt J, Sarma S. Realizing the Internet of Things: A framework for collective action. World Economic Forum. 2019. https://www3.weforum.org/docs/WEF_Realizing_the_Internet_of_Things.pdf
|
[3] |
李思平, 杨崇. 机械包覆丝机辅助接头装置的开发. 棉纺织技术, 2016, 44(10): 70-73. DOI:10.3969/j.issn.1001-7415.2016.10.017 |
[4] |
刘荣清. 倍捻技术发展与设备选型. 棉纺织技术, 2012, 40(8): 61-64. DOI:10.3969/j.issn.1001-7415.2012.08.019 |
[5] |
张珊, 吴恙, 张勇. STM8S系统可靠性设计. 科技风, 2013(15): 98. DOI:10.3969/j.issn.1671-7341.2013.15.082 |
[6] |
王雷. 基于STM8S903K3的电动自行车控制器设计与实现[硕士学位论文]. 南京: 南京理工大学, 2014.
|
[7] |
Todorov KP, Bogdanov LV, Ivanov RM, et al. Firmware field updates using bluetooth low energy and STM32 microcontrollers. 2018 IEEE XXVII International Scientific Conference Electronics-ET. Sozopol: IEEE, 2018. 1–4.
|
[8] |
Zhou Z, Lv ZH, Guo KK, et al. Research on the test system for electrical parameters of relay based on STM32. 2015 Fifth International Conference on Instrumentation and Measurement, Computer, Communication and Control (IMCCC). Qinhuangdao: IEEE, 2015. 1812–1815.
|
[9] |
赵圣飞. 基于STM32的数据采集存储系统的设计与实现[硕士学位论文]. 太原: 中北大学, 2014.
|
[10] |
卿建华. 基于MQTT协议的生产数据采集系统设计与实现[硕士学位论文]. 杭州: 浙江理工大学, 2018.
|
[11] |
潘洪跃. 基于MODBUS协议通信的设计与实现. 计量技术, 2002(4): 35-36. |
[12] |
IBM, Eurotech. MQTT V3.1 protocol specification. https://mqtt.org/mqtt-specification/.
|
[13] |
Liawatimena S, Warnars HLHS, Trisetyarso A, et al. Django Web framework software metrics measurement using Radon and Pylint. 2018 Indonesian Association for Pattern Recognition International Conference (INAPR). Jakarta: IEEE, 2018. 218–222.
|
[14] |
王冉阳. 基于Django和Python的Web开发. 电脑编程技巧与维护, 2009(2): 56-58. DOI:10.3969/j.issn.1006-4052.2009.02.022 |
[15] |
吕林涛, 万经华, 周红芳. 基于Ajax的Web无刷新页面快速更新数据方法. 计算机应用研究, 2006, 23(11): 199-200, 223. DOI:10.3969/j.issn.1001-3695.2006.11.065 |