跳到主要内容
版本:Next

LMES 常见问题

本章节整理了LMES系统使用过程中的常见问题与解决方案,帮助您快速定位和解决问题。

第一部分:安装、启动与环境问题

Q1: 软件无法启动,日志显示无法连接SIOT,且SIOT进程在任务管理器中反复启停。

A: 这是由于SIOT环境需要GBK编码,而您的操作系统可能开启了UTF-8作为默认编码。

解决方案: 在Windows的“区域设置”中,找到“管理语言设置”,取消勾选 Beta: 使用Unicode UTF-8提供全球语言支持 选项,然后重启电脑。

Q2: SIOT服务无法启动或通讯异常,尤其是在更换或增减网卡(如VPN、虚拟网卡)后。

A: SIOT服务在首次启动时会根据当前的网卡信息生成一个设备授权文件(License)。如果之后电脑的网卡信息发生变化,会导致授权验证失败。

解决方案: 停止CMS服务,删除软件目录 ...bin\siot\ 下的 License 文件夹,然后重新启动CMS,系统将自动生成新的授权。

Q3: 为什么CMS或相关服务(如报警、追溯)启动非常缓慢,甚至超时失败?

A: 服务启动缓慢通常是由于启动时需要加载或初始化的数据量过大。常见原因有:1. 报警模块配置了上万个报警点;2. 追溯或日志服务的历史数据缓存周期设置得过长(如超过180天)。

解决方案:

​ 1. 对于报警服务: 检查并优化报警配置,移除不必要的报警点。新版本已对报警服务启动性能进行优化,建议升级。

​ 2. 对于追溯服务/启动超时: 在CMS安装根目录下的 appsettings.json 配置文件中,适当缩短历史数据缓存天数或延长服务启动的超时时间(Timeout参数,单位为秒)。

Q4: 设置了开机自启动,为什么重启电脑后程序没有自动运行?

A: 这通常是操作系统的权限问题或相关服务被禁用。

解决方案:

​ 1. 确认用于运行自启任务的Windows账户拥有足够的权限。

​ 2. 打开任务管理器,切换到“启动”选项卡,找到“Windows Command Processor”或类似的条目,确保其状态为“已启用”。

Q5: 启动CMS后,界面报错 Error:ERR_INVALID_HTTP_RESPONSE(-370) 或无法加载。

A: 这个问题通常是由于电脑上的安全软件(如杀毒软件、防火墙)限制了新版Chrome内核的网络访问。CMS的界面是基于B/S架构的,依赖内嵌的浏览器内核,因此会受到影响。

解决方案: 临时使用Edge或Chrome浏览器,通过 http://127.0.0.1:18000 直接访问开发版界面。

Q6: 在开发版(CMS Editor)中运行程序,为什么服务会无故停止或闪退?

A: 这是开发版设计的正常行为。在开发版中,后台服务(如变量服务、流程服务等)的生命周期是与前端界面绑定的。当您关闭或刷新开发版的浏览器窗口时,后台服务会随之停止。

解决方案: 日常开发和调试可以使用开发版,但**正式生产环境必须使用运行版(CMS Vision)**来部署,以确保服务的持续稳定运行。

Q7: 软件或客户端运行时,突然崩溃退出或报错。

A: 如果问题是偶发的,很可能是外部环境因素导致。

解决方案: 请检查Windows的系统事件查看器,排查在问题发生的时间点,是否存在内存不足(如其他程序内存泄漏)、磁盘错误或特定驱动(如显卡驱动)崩溃的记录。外部程序或系统资源耗尽是导致CMS不稳定的常见原因。

Q8: 安装CMS时,报错”Error sending data:(12007)无法解析服务器的名称和地址“。

A: 这是因为安装过程中需要网络连接来获取某些组件,但未能成功。

解决方案: 请先安装“离线驱动包”,再运行CMS主安装程序。

第二部分:工程、配置与数据管理

Q9: 打开工程时报错“无效工程文件”、“no such table”或“file is not a database”。

A: 这类问题说明您打开的不是一个有效的工程文件。常见原因有:打开了一个0KB的空文件,或打开的是工程文件的快捷方式,而不是文件本身。

解决方案: 请确保您选择并打开的是正确的、完整的工程文件。

Q10: 打开工程时报错“An error occurred while saving...”或“服务端程序被终止”。

A: 这两个问题通常指向同一个原因:工程文件被设置为了“只读”属性。这种情况在使用微信等工具直接传输文件时非常常见。

解决方案: 右键点击您的工程文件,选择“属性”,在常规选项卡中,取消勾选“只读”属性,然后点击确定。

Q11: 打开工程时报错 SQLite Error 11:'database disk image is malformed'。

A: 这个错误表示工程文件(其本质是一个SQLite数据库)已经损坏,最常见的原因是CMS正在运行时电脑被非正常关机(如断电、强制重启)。

解决方案: 只能从备份中恢复未损坏的工程文件,或重新导入工程。

Q12: 为什么更新或修改配置后,追溯报表里查不到历史数据了?

A: 这是因为系统的报表和追溯功能是通过唯一的内部ID来关联数据的。如果您删除了某个配置项(如工序、工位、采集参数)再重新创建,即使名称相同,系统也会生成一个新的ID。这会导致新的配置项无法关联到旧ID产生的历史数据。

解决方案: 尽量在原有配置上进行修改,避免“删除再重建”的操作。如误删,需寻求技术支持从数据库层面恢复(软删除的数据),或通过数据映射关系进行修复。

Q13: 数据聚合功能有时会停止工作,查询数据库发现触发器(Trigger)消失了。

A: 数据聚合依赖数据库触发器。触发器丢失可能是由于其他表的配置存在问题(例如,某个字段配置错误),导致在更新数据库结构时发生异常,影响了触发器的生成。

解决方案: 检查工程中所有数据表的配置是否正确,特别是聚合表所依赖的源表。重新编辑并保存一次聚合表配置可以尝试重新生成触发器。

Q14: 工程数据备份或还原失败,没有提示。

A: 这类问题在新版本中已有优化。在旧版本中,失败的常见原因有:1. 备份文件中包含了当前版本不支持还原的插件数据(如部分LMES插件);2. 还原的文件在传输过程中已损坏。

解决方案: 建议升级到新版本以获得更好的备份还原体验和提示。如果失败,请检查文件完整性,并确认插件兼容性。

第三部分:数据库问题 (MySQL/InfluxDB)

Q15: 为什么MySQL数据库服务突然停止,且无法手动启动?

A: 如果在MySQL的错误日志中看到 Operating system error 或 InnoDB 相关的IO错误,这强烈暗示着硬件层面的问题,通常是磁盘(HDD/SSD)出现了坏道或读写错误。

解决方案: 请立即检查服务器的Windows系统日志,查找磁盘相关的错误信息,并使用工具检测磁盘的健康状况。若确认是异常关机导致,可以尝试重装数据库或从备份恢复。为预防此问题,建议在my.ini中配置innodb_flush_log_at_trx_commit = 1和sync_binlog = 1来增强数据安全性。

Q16: 历史归档服务启动报错“unauthorized access”。

A: 这表示您环境中已有的InfluxDB数据库密码与CMS期望的默认密码不符。

解决方案:

​ ● 如果记得旧密码: 修改CMS配置文件 host/appsettings.json,找到 InfluxDB 的连接字符串,将其中的密码改为您原来的密码。

​ ● 如果不记得密码或不需要旧数据: 直接删除历史数据并让CMS重建。前往C盘用户目录(C:\Users\YourUserName\),删除隐藏的 .influxdbv2 文件夹,然后重启CMS即可。

Q17: 为什么软件启动失败,日志提示列名重复或无效(例如CPK和Cpk)?

A: 数据库(如MySQL)在某些配置下对表名和列名的大小写不敏感。如果您在不同地方(如两个动态数据表)使用了仅大小写有区别的列名,在创建或修改表结构时,数据库会认为它们是重复的列名,从而导致操作失败,服务无法启动。

解决方案: 检查您的配置,确保同一作用域内的命名在忽略大小写的情况下也是唯一的。

第四部分:数据通讯与PLC/硬件协议

Q18: 通讯时,变量值显示为“??”或质量戳为3,如何排查?

A: 质量戳为3通常表示通讯未初始化或配置错误,这是一个综合性问题。

排查步骤:

​ 1. 授权检查: 确认使用的协议(特别是Modbus、OPC UA透传等)已获得正式授权,且未超过授权点数。未授权协议有2小时试用期,到期后服务会停止。

​ 2. PLC侧配置: 对于西门子PLC,请确保目标DB块已禁用“优化块访问”。对于三菱PLC,确保在PLC参数中启用了以太网端口的MC协议通信。

​ 3. 网络检查: 确认网络通畅,IP地址无冲突,且连接PLC的设备没有超过其最大连接数限制(例如,某些欧姆龙PLC的FINS/TCP最大连接数为3)。

​ 4. 地址配置: 检查变量地址是否正确。特别是Modbus协议,要区分功能码区域(如0x、1x、4x等)。

​ 5. 驱动版本: 某些通讯问题是旧版驱动的bug,升级到最新的协议驱动插件可以解决。

Q19: S7协议读取字符串时,前面会缺失两位字符。

A: 这是因为PLC侧的数据块(DB)中,对该字符串变量的数据类型定义不正确。

解决方案: 请在博图(TIA Portal)等PLC编程软件中,检查并修正该变量的数据类型,确保其与CMS中配置的类型一致。

Q20: 使用TCP/IP或Modbus TCP协议时,配置中的“字节顺序”选项似乎不起作用。

A: 字节顺序(大小端转换)的功能依赖于通讯驱动插件的版本。旧版本的驱动可能不支持对所有数据类型进行字节顺序调整。

解决方案: 请将您的协议驱动插件升级到最新版本,以获得更全面的功能支持。

Q21: 使用串口(RS232)扫码枪,当条码长度较长时,接收到的数据会不完整。

A: 这是因为串口数据可能被分成了多个数据包(报文)发送。旧版驱动可能未能正确处理这种分段报文,导致数据拼接不完整。

解决方案: 此问题已在新版本中修复,请更新您的CMS版本或相关的串口驱动插件。

Q22: 使用远程运维功能下载PLC程序(如S7-1500)时,为什么会失败或导致PLC报错?

A: 远程运维功能对网络质量要求较高。程序下载失败或中断通常是由于网络不稳定,如丢包、高延迟或MTU(最大传输单元)限制。

解决方案: 您可以自行排查:在您的电脑上 ping 现场设备的虚拟IP地址,查看是否存在丢包。如果存在网络问题,需要先优化本地或现场的网络环境。

Q23: 使用松下(Panasonic)PLC和MC协议,读取字符串时内容不正确。

A: 不同的PLC厂商对标准协议的实现可能存在细微差异。已经发现,在使用MC协议连接松下PLC时,如果在驱动配置中选择“三菱(Mitsubishi)”作为设备型号,可以解决字符串解析不正确的问题。

解决方案: 这是一个有效的解决方法,请在配置时尝试切换设备型号。

第五部分:LMES、功能配置与应用逻辑

Q24: 为什么完工信号不复位,或系统提示“漏工序”,无法正常进站?

A: 这类问题通常是生产流程逻辑的配置问题。

​ ● 漏工序: 大概率是由于PLC交互地址配置错误。请检查工艺路线中,前后工序的“进站信号”、“出站完成信号”等关键交互变量的地址是否配置正确。

​ ● 不复位: 可能是由于网络中存在“主机名重复”的电脑,干扰了数据库通信;也可能是因为流程卡在某个定制业务中,没有执行到最后的复位步骤;或是SIOT到CMS的数据推送因性能问题出现延迟。

Q25: 配方参数下发失败,或配方日志里没有任何记录?

A:

​ ● 下发失败: 多为配置问题。请检查配方中引用的参数是否被误删除,或下发地址是否正确,特别要注意是否存在地址冲突或越界(例如下发INT型变量时影响了相邻地址)。

​ ● 没有日志: 这是设计使然。要生成日志,您需要在配方参数中配置“监听变量”。只有当该监听变量的实际值与设定的配方值不一致时,系统才会记录一条配方日志。

Q26: 产品经过返修判定后,再次进入已加工过的工位时,系统报“重码(结果码3)”而不是“过站(结果码7)”。

A: 这是系统的设计逻辑。为了防止数据混乱,系统默认不允许已完成工序的产品再次进入。正确的返修流程需要专门配置,确保系统能识别出当前产品处于“返修状态”,从而执行特定的返修逻辑,而不是标准的生产逻辑。

Q27: 我在物料校验或其它功能中,配置了读取多个变量,但系统报错 An item with the same key has already been added。

A: 这个错误表示您在一次请求中,让系统读取了多个名称完全相同的变量。系统内部在处理时,无法将这些同名变量放入一个唯一的集合中。

解决方案: 请检查您的功能配置(如物料校验的规则),确保在同一次操作中引用的变量名都是唯一的。

Q28: 如何确认互联的MQTT功能启用后工作正常?

A: MQTT功能默认不打印详细日志。

解决方案: 修改配置文件 host/appsettings.json,将 UpCloudLogLevel 的值从 0 改为 7。之后就可以在 host\sdklog[日期]\ 目录下找到详细的 cloud_sdk 日志了。

第六部分:UI、组件与报表问题

Q29: 为什么软件界面上的某个模块(如工单管理)或页面显示空白/异常?

A: 这类问题通常由前端组件加载失败或缓存导致。

解决方案:

​ 1. 检查是否由网络波动引起(错误码 ERR_NETWORK_CHANGED),确保网络环境稳定。

​ 2. 清除软件或浏览器的缓存,一个错误的缓存文件可能导致页面解码失败。

​ 3. 如果是特定功能模块空白,可以尝试重新覆盖或更新该功能的组件包。

Q30: 从Web端导出报表时报错或失败,但客户端导出正常。

A: 这通常是由于您在命名“工序”或“工位”时,使用了在URL或文件名中非法的特殊字符,例如 \、/、:、*、? 等。这些字符会干扰后台生成文件路径,导致导出失败。

解决方案: 请检查并修改您的工序/工位名称,移除这些特殊字符。

Q31: 报表或XY曲线查询缓慢,甚至导致服务崩溃。

A: 这是因为查询的数据量过大,超出了系统或硬件的处理能力,尤其是在配置了上百个字段或维度指标时。

解决方案: 优化您的查询配置,减少一次性查询的字段数量和时间范围。对于复杂的报表,建议取消自动刷新,改为手动查询。如果业务上确实需要进行大数据量分析,请联系我们探讨性能优化方案。

Q32: 界面上的变量值显示为空,但在变量管理中能看到实时数据。

A: 这个问题通常发生在您将一个变量绑定到界面组件(如IO映射)后,又返回去修改了这个变量的“数据类型”。这种操作可能会导致前端组件与后端变量之间的数据类型不匹配,从而无法正确显示。

解决方案: 在进行变量绑定前,请先确定好其数据类型,避免后续修改。如果已发生,请尝试删除绑定,再重新配置。