深圳市嘉友智控科技股份有限公司实习相关整理
项目准备
深圳市嘉友智控科技股份有限公司 基于Node.js的智慧纺纱数据采集云端系统
技术栈
- 采集端端硬件用 Modbus 协议传输机器数据
- 边硬件用 MQTT 协议(能实现订阅与发布)与云端交换数据
- Node.js + MySQL 和云端同步数据
项目描述
- 细纱单锭监测系统:收集纺纱机数据例如:启停次数、纺纱粗细、旋转速度、进料量、出料量、报警信息等,从云端拉取配置信息,上传数据到云端,并实时展示在网页上。
- 弱捻、断头、故障锭位警示功能:为挡车工和机修工提供快速指引,发现弱捻/断头/故障锭位,避免无效巡回。
- 粗纱断头停喂功能:当发生断头时立即停止粗纱喂入,简易的解锁方式,便于粗纱启动喂入,从而减少粗纱浪费。
- 断头、弱捻数码警示功能:数码滚动显示屏便于挡车工、机修工远距离发现断头根数/弱捻锭数/故障锭数,减少无效巡回。
- 单台控制显示系统:大屏Android人机界面显示单台设备运转状况,如断头锭位根数、产量、效率等。
- 数据传输功能:植入联网卡,通过M2M技术实现对细纱机的互联互通。
- 模块化扩展功能:可根据用户需求扩展风机变频控制、功耗、温湿度、粉尘、噪声采集等模块。
- 慧纺云纺纱优化平台系统平台支持纺纱全流程各工序的智能制造执行过程,包括清花、梳棉、预并条、条并卷、精梳、并条、粗纱、细纱、络筒和倍捻等环节,平台借助AIOT设备、云计算、智能APP,基于数据聚合、多角色协同、可视化分析、智能决策四大功能组合,用数据和算法帮助纺纱企业提升产能利用率、优化人力效能、缩短生产周期、降低库存积压、透明化纺纱流程,实现数据驱动下的精益制造。友好交互:使用工业控制专用Android屏,界面简洁易懂。更改纺
纱工艺只需在触摸屏上输入相关参数即可。
- 管理层:随时随地可远程监控现场实时生产状况,对生产运营过程和数据进行实时监控,暴露问题、明确改进方向,提供改进建议。
- 保全人员:保全工实时接收细纱落后锭子,空置锭子,锭带故障等消息推送,快速精准的定位问题,减少问题排查环节,减少锭子停纺时间。
- 工艺人员:可以全工序监控各机台品种及工艺数据,对设备机台的翻改、了机、试纺等工艺环节一目了然,打破生产与质量环节间的信息壁垒。
- 抄表员:系统自动实现统计班组产量,省去人工抄表的步骤,避免出现人为错误,可以提高班组员工的工作效率。
- 设备人员:及时掌握纺机设备和专件器材的维护状态,告别传统纸质台账,系统自动提醒换专件或设备保养消息,精细化管理设备和器材。
- 统计员:灵活设置计件规则,工资与产量、质量、看台数等指标关联,自动核算,省去人工计算,并提高信息透明度和员工信任度。
- 智能巡回小车:基于智能路径规划算法的慧纺云智能巡回小车系统,根据断头数量和分布位置计算出最优的接头路线,使挡车工的巡回次数大大减少,进一步提高平均接头时间,降低工人劳动强度提升工作效率。
- 工艺优化:支持便捷查询和追溯每个产品的工艺、对设备的工艺参数单独翻改、直观反应每台设备的特性、快速分析匹配品种所对应的设备性能。
- 质量管理:质量管理系统包含纺纱全流程质量数据,系统通过工业物联网通信实现与实验室设备连接,根据纺纱设备在线运行中的质量工艺参数,进行实时数据监视和跟踪并对异常信息及时报警。能耗管理:能耗管理系统通过实时用电数据采集,诊断分析设备的运行状态,快速统计设备的运行效率和能耗情况。
- 环境监测:环境监测系统连接车间各区域部署的工业物联网温湿度采集设备,支持环境数据的可视化和实时状态监控。
- 大屏管理:利用慧纺云纺纱看板管理系统向各车间快速下达生产指令,实时查看每道工序计划与实际完成情况,生产全面统计分析,问题快速处理,效率飙升。
- 仓储模块:仓库管理系统可以独立执行库存管理操作,也可与其他系统的单据和凭证等结合使用,为企业提供更为完整全面的业务流程和财务管理信息。
- 产能分析:产能分析系统是以机台,品种等多维度综合对比以趋势图和表格形式展示产量与能耗数据。通过多维度进行对比查看,可以明显看出哪些设备超过负荷或者机器使用率偏低,以便管理层进行适当调整。
- 回花下脚:回花下脚系统可以针对不同工序的下脚料进行分类统计记录,配棉人员清晰了解回花下脚的物料清单来进行配棉方案梳理。
- 订单管理:实时呈现生产订单所有执行过程,通过工序管理,进度查询等不断加速生产执行生产全程可视可控,减少沟通成本,保证交期。
- 原棉码盘:原棉码盘系统主要包括原棉数据管理模块和配棉方案管理,配棉方案是配棉人员根据回花下脚以及原棉数据管理进行合理的配棉选择并进行下发,排包人员可根据配棉方案进行排包,有效规范的管理以及系统协助帮助配棉人员高效的进行配棉以及后续的生产事项。
项目结构
项目难点与学习总结
总结
- 硬件通过 modbus 协议传输数据时可能没有初始化,直接一段读取多个硬件数据会报错,需要对每个硬件的信息特殊处理。
- 通过 modbus 协议读取硬件寄存器中的信息时,一次只能读取一部分(假如有800个寄存器,一次只能读取100个,需要多次读取),而有的寄存器中的数据不需要,分段读取,尽量少段,少读取不需要的数据。设计算法,就是最好(但不是必须)读的寄存器都是需要用的,并且需要用的寄存器是连续地址的就尽量一次性读,但一次最多读100个。
- 每次仅当云端的配置更新时才拉取对应JSON文件,减少网络请求次数。并转存到本地MySQL数据库中。
- 设计接口,会返回一个JSON数据,只包括要插入或更新或删除的数据(并非所有数据),具体用哪个操作用标识码标出,flag:1 更新或插入,0 删除,根据ref_id判断(ref_id:云端表ID,唯一索引做映射用)
- 每次数据同步成功后,不管有没有需要更新的数据,都要向云端特定接口返回一个成功标识码,让云端好判断下次怎么样传数据。
简历问题准备
项目背景描述
收集纺纱机数据上传到云端实时展示在网页上,能对弱捻、断头等情况定位与警示,并提供粗纱断头停喂、全工序监控、自动统计班组产量、根据断头数量和分布位置计算最优接头路线等功能。
设计了仅查询云端配置更新状态的接口,避免了边设备轮询同步配置时云端频繁到MySQL中查询全量数据,预防了并发量稍大时因储存的无用全量数据过多而出现的内存溢出问题
边设备轮询配置是否发生变化,如果有变化再同步。 边设备也用MySQL数据库存配置,虽然配置的量不大(1万条以内)用SQLite存也挺好,但边设备还需要存每秒收集到的各个端设备的信息(需要保存30天)并同步到云端,大概会有1000万条数据,所以用MySQL存。
优化了同步边设备配置与云端配置的接口,从返回全部配置数据优化为仅返回边设备配置中需要变更的数据,减少了流量费用
和上一条其实是一起的,进一步优化同一个接口。 在云端改变配置时,不仅仅改变云端内MySQL配置表中的信息,还要用代码在内存中记录增加、删除、更新了哪些字段,将其生成为一个用于返回同步接口请求的JSON文件(接口返回此JSON文件,边设备收到JSON文件后解析其中的数据,并更新配置信息),打上版本号并记录此JSON文件到云端MySQL数据库(表有字段为版本号)。 边设备请求同步接口时会带上当前边设备的版本号,云端取出在边设备版本号之后的所有新版本JSON数据,云端合并取出来的多个配置更新JSON数据为一个JSON数据并返回给边设备,边设备收到JSON数据后解析其中的数据,并更新配置信息,还会更新边设备的版本号。
纺纱机内各个端设备寄存器中有效信息的地址分散,设计了边设备通过Modbus协议读取端设备有效信息的方法,避免了边设备读取整个寄存器,减少了边设备获取的无效数据与连接请求次数
硬件通过Modbus协议传输数据时可能没有初始化,边设备直接一段读取操作多个硬件数据很可能读到未初始化的危险数据而报错,边设备需要对每个硬件中的信息特殊处理后在操作。 通过Modbus协议读取硬件寄存器中的信息时,一次只能读取一小段连续的部分(假如寄存器有800个地址号,一次只能读取100个地址号,就需要多次读取)。不管咋样直接从头开始100个100个依次全部读取就十分简单,但会读到很多无效数据浪费带宽(如果只有几个地址号要读也得读完全部800个),但也不能分太多段读,一次链接也有不小的消耗,连接多了性能下降。 所以设计算法分段读取,尽量少段,少读取不需要的数据。就是最好(但不是必须)读的寄存器都是需要用的,并且需要用的寄存器是连续地址的就尽量一次性读,但一次最多读100个。 要少分段又要少读取不需要的数据,这是不能同时完美达到的,所以我们取其均衡。设定一个分段内无效数据临界值,先满足尽量少分段的要求(每次都读取最长,将能包入的都包入),再按无效数据临界值切割分段(一个段内无效数据占比超过临界值就要将此段拆分成两段)。 临界值按具体任务要求调控。 例如,有1-4和89-99要读取,先满足尽量少分段的要求,将1-4和89-99都包入(直接读1-99),再按无效数据临界值切割分段,将1-99拆成1-4和89-99,这里分两段读比较优秀。 又例如,有1-18和28-67要读取,先满足尽量少分段的要求,将1-18和28-67都包入(直接读1-67),再按无效数据临界值切割分段,此时无需拆分,这里直接读1-67比较优秀。