# imscada **Repository Path**: lxfamn/imscada ## Basic Information - **Project Name**: imscada - **Description**: PLC采集 西门子PLC 三菱PLC - **Primary Language**: Java - **License**: GPL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 4 - **Forks**: 3 - **Created**: 2023-11-23 - **Last Updated**: 2025-05-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # imscada ## Author:lxfamn #### 介绍 基于其他开源项目,使用S7connecter进行连接,后续扩展其他连接方式 #### date:2024-1-2 0:20 descrip: 增加三菱通讯 增加三菱通讯 ### 基本框架 #### 西门子通讯 详细描述: 读写西门子PLC,注意: 1、读取类型一般用word即可读取,返回的类型有barcodeStr、barcodeInt、barcodeHex分别对应字符串、整数、16进制数,自行解析需要的类型 2、写入类型支持16进制和10进制,传入List,每个地址一行,暂不支持bool和int,如有需要可以调整支持 #### 三菱通讯 详细描述: 读写三菱PLC,注意: 1、int,一般使用数值进行交互 2、返回的result是读取的数据列表 3、写入类型int每组一个转为16进制并进行高低位颠倒写入,word类型必须是00 00 格式且已做高低位转换 ### 使用说明 1、将PLC的读取作为HTTP接口通过POST json字符串的方式进行读写 SCADA使用 2、启动项目即可使用,ip端口等通过参数即可设置 ### 西门子PLC特殊说明 #### 西门子的PLC不支持多线程同时读取,即同一个PLC不能多个程序进程同时打开,否则连接会重置。 为了解决上述问题: 1、启用redis消息中间件,通过redis消息队列的形式进行将请求控制为单线程。 2、在程序启动时开启redis队列消费者读取,在config/startup文件夹中,部署mysql数据库后 可以取消注释开启 3、mysql数据结构在init文件夹中,部署后不要忘记修改bootstrap.properies 中的数据库相关信息 4、在plccontroller中保留相关原始s7请求,方便测试使用 5、sanl是否也存在该问题尚不确定,因为三菱的无法进行跨网段组网,基本一个plc对应一个程序暂无该需求。