news 2026/9/4 7:35:08

AI自动生成博途Modbus RTU轮询程序:免费开源工具实测指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
AI自动生成博途Modbus RTU轮询程序:免费开源工具实测指南

这次我们来看一个能直接帮你写博途(TIA Portal)Modbus RTU轮询程序的AI工具。它最大的特点是“全免费开源”,并且号称能用一句中文描述,自动生成可用的PLC程序代码,整个过程有录屏为证。对于经常需要与西门子PLC、变频器、仪表进行Modbus通讯的工程师来说,如果这个工具真能跑通,那将极大简化重复的配置和编程工作。

这个项目的核心价值在于,它试图用AI大模型理解你的自然语言需求,并直接输出TIA Portal项目文件或结构化代码,省去手动编写轮询逻辑、处理字节序、配置通讯参数的繁琐步骤。本文将带你快速了解这个工具是什么、怎么用、以及在实际工程中需要注意什么。我们会重点关注它的功能边界、部署方式、生成效果验证,以及如何与你的博途工程集成。

1. 核心能力速览

根据项目标题和描述,我们可以梳理出这个AI工具的核心特性。需要注意的是,由于这是一个开源项目,其具体实现细节和性能会随版本更新而变化,下表是基于其宣称功能整理的速览。

能力项说明
核心功能根据一句中文描述,自动生成西门子博途(TIA Portal)环境下的Modbus RTU轮询程序。
目标场景西门子S7-1200/1500等PLC通过RS485接口与支持Modbus RTU协议的从站设备(如仪表、变频器)通讯。
输入方式自然语言描述(例如:“读取3号从站,地址40001开始的5个保持寄存器,存到DB1中”)。
输出形式预计为TIA Portal项目文件(.apXX)、或可导入的SCL/STL代码块、或完整的程序框架。
技术栈推测结合了AI大模型(如Code Llama、DeepSeek-Coder等)与博途Openness自动化接口。
使用门槛需要对Modbus RTU协议和博途软件有基本了解,用于验证和微调AI生成的代码。
部署方式根据“全免费开源”描述,应为本地部署或通过API调用,需准备Python等运行环境。
硬件要求主要依赖CPU和内存运行AI模型,对显卡无特殊要求。需要安装TIA Portal用于验证代码。
是否支持API项目若提供Web服务,则可能支持API,便于集成到其他自动化流程中。
是否支持批量从“轮询程序”定位看,应支持生成包含多个从站、多个数据点的批量轮询逻辑。

重要提醒:AI生成代码始终需要工程师进行严格审核和测试,严禁直接用于关键控制流程。生成代码的准确性、安全性和效率必须经过充分的离线仿真和实际硬件测试。

2. 适用场景与使用边界

在考虑使用这个AI工具之前,明确它能做什么、不能做什么至关重要。

适用场景:

  1. 快速原型搭建:当你需要快速验证与一个新品牌/型号的Modbus设备通讯是否可行时,可以用AI快速生成基础通讯框架,节省初期研究协议手册的时间。
  2. 标准化代码生成:对于厂内大量重复的、模式固定的数据采集点表(如读取多个温湿度仪的寄存器),可以用AI批量生成结构相似的代码,减少重复劳动和笔误。
  3. 新手学习辅助:对于不熟悉博途中Modbus RTU指令(如MB_MASTER)或SCL编程的工程师,AI生成的代码可以作为一份不错的参考示例,帮助理解数据映射、错误处理等逻辑。
  4. 文档与代码同步:理想情况下,用自然语言描述的需求本身就是一份文档。AI将其转化为代码,能在一定程度上保证文档与实现的一致性。

不适用场景与边界:

  1. 非标或复杂协议:Modbus RTU协议本身是标准的,但如果从站设备对标准协议有自定义扩展(如非标准功能码、特殊的心跳包),AI可能无法正确处理。
  2. 实时性与性能苛刻的场景:AI生成的轮询逻辑可能未充分考虑扫描周期优化、通讯超时处理、错误恢复机制等对实时性要求高的细节,需要人工深度优化。
  3. 安全完整性等级(SIL)高的系统:涉及安全控制(如急停、安全门)的逻辑,绝对不应依赖AI生成代码,必须由专业工程师遵循安全规范编写和验证。
  4. 替代系统设计与架构:AI生成的是“程序片段”,而不是整个PLC项目的架构设计。硬件组态、网络配置、数据块规划、HMI连接等仍需工程师完成。
  5. 版权与合规性:确保你拥有所使用的TIA Portal软件的正版授权。AI工具生成的代码,其知识产权归属需根据项目开源协议界定,用于商业项目时需谨慎。

3. 环境准备与前置条件

要运行这个AI代码生成工具,你需要准备两套环境:AI工具运行环境博途代码验证环境

3.1 AI工具运行环境准备

由于项目是“全免费开源”的,我们假设其部署方式为本地Python项目。以下是通用准备清单:

  1. 操作系统:Windows 10/11(64位)为佳,与TIA Portal兼容。Linux/macOS也可运行AI服务,但最终代码需在Windows博途中测试。
  2. Python环境:安装Python 3.8-3.11版本。推荐使用Anaconda或Miniconda创建独立的虚拟环境,避免依赖冲突。
    # 创建并激活虚拟环境示例 conda create -n tia_ai python=3.9 conda activate tia_ai
  3. 项目源码:从开源仓库(如GitHub)克隆项目代码。
    git clone <项目仓库地址> cd <项目目录>
  4. 依赖安装:根据项目提供的requirements.txt文件安装Python依赖包。
    pip install -r requirements.txt
  5. AI模型:如果工具依赖本地大模型(如GGUF格式的代码模型),需要提前下载模型文件,并放置到项目指定的目录中。

3.2 博途验证环境准备

这是验证生成代码是否可用的关键,必须提前准备好。

  1. TIA Portal软件:安装与你PLC硬件相匹配的TIA Portal版本(如V16, V17, V18)。确保授权(License)有效。
  2. PLC硬件或仿真器
    • 真实硬件:准备西门子S7-1200或S7-1500 PLC,并配置好CM/CP模块的RS485接口。
    • PLCSIM Advanced:如果使用S7-1500系列,可以使用PLCSIM Advanced进行高级仿真,它支持仿真PLC的IP地址和访问,对测试通讯代码很有帮助。
    • 普通PLCSIM:对于基础逻辑测试可行,但仿真Modbus RTU等硬件通讯通常需要额外工具(如Modbus Slave仿真软件)。
  3. Modbus从站仿真软件:用于模拟待连接的仪表、变频器等。常用的有Modbus Poll(主站)/Modbus Slave(从站)、QModMaster等。你需要用它创建虚拟从站,设置寄存器地址和数据,以供生成的PLC程序读取。
  4. 通讯连接
    • 真实硬件:确保PLC的RS485端口(如CM1241)与从站设备或USB转485调试器正确连接,接线(A/B)正确,终端电阻设置得当。
    • 仿真环境:可能通过虚拟串口对(如VSPD)连接PLCSIM Advanced与Modbus Slave软件。

4. 安装部署与启动方式

由于没有具体的项目仓库链接和启动脚本,这里提供两种基于常见开源AI项目模式的部署思路。

4.1 模式一:本地WebUI服务(推测)

许多AI代码生成项目会提供一个基于Gradio或Streamlit的Web界面。部署启动步骤如下:

  1. 检查启动脚本:在项目根目录寻找app.py,webui.py,main.pyrun.py等文件。
  2. 查看启动参数:通常可以通过命令行参数指定主机和端口。
    # 假设启动脚本为 app.py python app.py --host 0.0.0.0 --port 7860
  3. 访问界面:启动成功后,在浏览器中访问http://localhost:7860。预期会看到一个输入框,用于输入中文需求描述,以及一个生成按钮。

4.2 模式二:命令行接口(CLI)工具

项目也可能设计为直接通过命令行交互。

  1. 查找CLI入口:寻找项目说明文档(README.md)或cli.py文件。安装后可能通过一个自定义命令启动。
  2. 运行示例
    # 方式1:直接运行Python脚本 python generate_code.py --prompt "读取1号站地址30001的10个输入寄存器" # 方式2:如果项目打包成了命令行工具 tia-modbus-gen "读取1号站地址30001的10个输入寄存器"
  3. 指定输出:工具可能会要求指定输出目录,用于存放生成的博途项目文件或代码片段。

4.3 模式三:API服务模式

如果项目侧重集成,可能会启动一个REST API服务。

  1. 启动API服务
    uvicorn api_server:app --host 0.0.0.0 --port 8000
  2. 调用API:使用curl或Python的requests库进行测试。
    import requests import json url = "http://localhost:8000/generate" payload = { "instruction": "生成一段博途SCL代码,功能是轮询读取2号Modbus RTU从站,起始地址40001,长度8,存储到DB2.DBD0开始的区域。", "tia_version": "V18" } headers = {'Content-Type': 'application/json'} response = requests.post(url, data=json.dumps(payload), headers=headers) if response.status_code == 200: result = response.json() print(result.get('code')) # 将代码保存到文件 with open('generated_code.scl', 'w', encoding='utf-8') as f: f.write(result.get('code')) else: print(f"请求失败: {response.status_code}")

关键一步:无论哪种方式,首次运行后,请仔细查看命令行输出的日志,确认AI模型加载成功,无报错信息。

5. 功能测试与效果验证

这是评估该AI工具是否实用的核心环节。我们将设计几个不同复杂度的测试用例。

5.1 测试用例设计

准备以下中文指令,用于测试AI的理解和生成能力:

  1. 基础单点读取

    “读取Modbus RTU从站地址为3,保持寄存器地址40001的值,存到PLC的DB1.DBW0。”

  2. 批量连续读取

    “轮询读取1号从站,输入寄存器起始地址30001,共读取10个寄存器,数据存入DB100.DBD0开始的区域。”

  3. 混合操作(读/写)

    “先读取2号站保持寄存器40010的值,然后向同一从站的保持寄存器40020写入一个固定值5000。”

  4. 带错误处理的复杂轮询

    “创建一个轮询任务,依次读取站址1、2、3的保持寄存器40001。如果某个站通讯失败,记录错误代码到特定DB块,并继续轮询下一个站。”

5.2 生成代码审查要点

拿到AI生成的代码后,不要直接下载到PLC。请按以下步骤审查:

  1. 语法正确性:将生成的SCL/STL代码或代码块导入TIA Portal,首先进行“编译”。检查是否有语法错误、未定义的符号或数据类型不匹配。
  2. 协议匹配性
    • 站地址:检查生成的代码中,Modbus从站地址是否正确(通常是1-247)。
    • 功能码:读取输入寄存器(3x区)对应功能码04,读取保持寄存器(4x区)对应功能码03,写单个寄存器对应功能码06,写多个寄存器对应功能码16。AI是否选对?
    • 地址转换:Modbus协议地址通常是0-based或1-based偏移量。博途的MB_MASTER指令使用的“Modbus地址”需要转换。例如,设备手册说地址40001,在MB_MASTERDATA_ADDR参数中可能需要填写0。检查AI是否做了正确转换。
  3. 数据映射
    • 数据类型:读取的多个寄存器是组成一个Int、DInt、Real还是字符串?检查AI生成的DB块变量声明是否与数据长度匹配。
    • 字节序:Modbus RTU通常是Big-Endian(高位在前),而西门子PLC内部存储可能是Little-Endian。AI生成的代码是否包含了必要的字节交换(SWAP)操作?
  4. 程序结构
    • 轮询逻辑:代码是放在OB1中每个周期调用,还是使用了定时中断OB(如OB30)?是否避免了过于频繁的调用导致通讯堵塞?
    • 错误处理:是否检查了MB_MASTER指令的DONEBUSYERROR状态位?是否将错误代码存储并处理?
    • 互锁与状态机:对于多个站或混合操作,是否使用了简单的状态机或步序逻辑,确保上一笔通讯完成后再发起下一笔?

5.3 仿真环境测试

  1. 在TIA Portal中创建测试项目:添加一个S7-1200/1500站,配置好硬件(或使用仿真PLC)。
  2. 集成AI生成的代码:将审查通过的代码块(如FC或FB)添加到项目中,并在OB1中调用。
  3. 配置Modbus Slave仿真软件
    • 创建一个从站,站地址与代码中一致。
    • 在对应的寄存器地址(如40001)上设置一个测试值(如12345)。
  4. 运行与监控
    • 将项目下载到PLCSIM Advanced或真实PLC。
    • 将PLC切换到RUN模式。
    • 在TIA Portal的监控表中,观察目标DB块(如DB1.DBW0)的值是否变为12345。
    • 尝试修改从站仿真软件中的值,观察PLC中数据是否同步更新。
    • 测试通讯超时、从站断电等异常情况,观察错误处理逻辑是否生效。

6. 接口API与批量任务集成

如果该AI工具提供了稳定的API服务,它可以被集成到更自动化的流程中。

6.1 API调用标准化

假设API接口如上文所述,我们可以编写一个Python包装函数,便于重复调用。

# tia_code_generator.py import requests import json import time class TIACodeGenerator: def __init__(self, api_base="http://localhost:8000"): self.api_url = f"{api_base}/generate" def generate_modbus_code(self, instruction, tia_version="V18", max_retries=3): """调用AI接口生成代码""" payload = { "instruction": instruction, "tia_version": tia_version } for i in range(max_retries): try: response = requests.post(self.api_url, json=payload, timeout=30) response.raise_for_status() # 检查HTTP错误 return response.json() except requests.exceptions.RequestException as e: print(f"API调用失败 (尝试 {i+1}/{max_retries}): {e}") if i < max_retries - 1: time.sleep(2) # 等待后重试 else: return {"error": str(e)} return {"error": "Max retries exceeded"} # 使用示例 if __name__ == "__main__": generator = TIACodeGenerator() instructions = [ "读取站址5,地址40001-40005,存DB10", "向站址6的地址40010写入值1000", # ... 更多指令 ] for idx, instr in enumerate(instructions): print(f"生成指令 {idx+1}: {instr}") result = generator.generate_modbus_code(instr) if 'code' in result: filename = f"modbus_code_{idx+1}.scl" with open(filename, 'w', encoding='utf-8') as f: f.write(result['code']) print(f" 已保存至: {filename}") else: print(f" 生成失败: {result.get('error', 'Unknown error')}")

6.2 批量任务处理

对于有大量相似设备需要生成代码的场景,可以结合Excel/CSV配置表进行批量生成。

  1. 准备配置表(config.csv)
    Station,Function,StartAddr,Length,PlcDB,PlcOffset,Comment 1,READ_HOLDING,40001,5,DB1,0,读取温度值 2,READ_INPUT,30001,10,DB2,0,读取压力值 3,WRITE_SINGLE,40010,1,DB3,0,写入设定值,值固定为500
  2. 编写批量生成脚本:读取CSV,将每一行转换为自然语言指令,调用上述TIACodeGenerator类,为每个设备生成独立的代码文件,或合并成一个综合的轮询程序。
  3. 结果校验:批量生成后,可以编写简单的脚本,检查生成的代码文件是否包含关键指令(如MB_MASTER)、是否正确引用了DB块等,进行初步的自动化校验。

7. 资源占用与性能观察

由于这是一个代码生成AI工具,其资源消耗主要发生在生成阶段,而不是生成的PLC代码运行时。

  1. AI工具运行资源

    • CPU/内存:如果使用7B/13B参数量的量化模型,在推理时可能占用数个GB的内存。使用任务管理器htop(Linux)监控Python进程的内存占用。
    • GPU(可选):如果工具支持GPU加速且你安装了CUDA,推理速度会大大提升。使用nvidia-smi命令观察GPU显存占用和利用率。对于代码生成任务,中等规模的模型在GPU上推理通常很快。
    • 响应时间:从发送指令到收到完整代码,时间应在数秒到数十秒之间。如果超过1分钟,可能需要检查模型是否加载正常或网络(如果调用云端API)是否通畅。
  2. 生成代码的性能影响

    • PLC扫描周期:这是需要你重点评估的。AI生成的轮询程序,其效率取决于逻辑设计。一个简单的、每次扫描都调用MB_MASTER且等待完成的程序,会严重阻塞PLC扫描周期。
    • 优化建议:生成的代码应使用“非阻塞”模式,并通过状态位管理多个请求。通常需要人工介入,将生成的“单次操作”代码改造成基于状态机或FB背景数据块的“轮询管理器”。
    • 通讯资源:确保生成的代码正确管理了Modbus主站指令的背景数据块(DB),避免重复初始化或冲突。

8. 常见问题与排查方法

在部署和使用过程中,你可能会遇到以下问题:

问题现象可能原因排查方式解决方案
AI服务启动失败1. Python依赖缺失或版本冲突。
2. 端口被占用。
3. AI模型文件缺失或路径错误。
1. 查看命令行报错信息。
2. 使用netstat -ano检查端口。
3. 检查模型配置文件路径。
1. 重新创建虚拟环境,严格按requirements.txt安装。
2. 更换启动端口(如--port 7861)。
3. 根据项目README下载模型并放置到正确位置。
生成代码编译错误1. AI不理解博途特定语法或指令。
2. 生成的DB块或变量未定义。
3. 数据类型不匹配。
1. 在TIA Portal中查看具体错误信息及行号。
2. 检查是否缺少全局库或类型声明。
1. 尝试更精确、更结构化的中文指令(如“使用MB_MASTER指令”)。
2. 手动创建缺失的DB块或数据类型。
3. 将错误反馈给项目开发者,帮助模型改进。
生成的代码通讯不上1. Modbus地址转换错误。
2. 站地址、波特率等参数不匹配。
3. 硬件组态或接线问题。
1. 对比AI生成的地址与Modbus Slave仿真软件设置。
2. 使用Wireshark等工具抓取串口数据包(需虚拟串口或硬件)。
3. 检查PLC硬件配置中RS485端口的参数。
1. 手动修正地址偏移量(通常是±1)。
2. 确保PLC程序与从站设备的波特率、数据位、停止位、校验位完全一致。
3. 先用一个简单的手写程序测试硬件连通性。
API调用无响应或超时1. AI服务未运行或崩溃。
2. 请求格式不正确。
3. 模型推理时间过长。
1. 检查AI服务进程是否存活。
2. 查看服务端日志。
3. 使用Postman等工具测试API基础连通性。
1. 重启AI服务,查看更详细的日志。
2. 确保请求体为JSON格式,且字段名正确。
3. 对于复杂指令,考虑增加API超时时间。
批量生成时代码质量不稳定1. 自然语言指令歧义。
2. AI模型存在“幻觉”,生成虚构指令或参数。
1. 对比不同指令的生成结果。
2. 对同一指令多次生成,观察结果一致性。
1. 标准化指令模板,例如:“功能:[读/写],从站:[站号],Modbus地址:[起始地址],长度:[数据长度],PLC存储位置:[DB块.偏移量]”。
2. 建立代码校验规则,过滤掉明显错误的生成结果。

9. 最佳实践与使用建议

为了安全、高效地利用这个AI工具,请遵循以下建议:

  1. 从简单到复杂:不要一开始就让它生成一个包含数十个站、复杂错误恢复的完整程序。先从“读取一个寄存器”开始,验证整个流程(AI生成 -> 导入博途 -> 编译 -> 仿真测试)是通的。
  2. 提供精确的上下文:在给AI的指令中,尽量包含关键参数。例如,与其说“读温度”,不如说“读取站址1,保持寄存器地址40001(温度值),数据格式为INT,存放到DB1.DBW0”。
  3. 生成的是“草稿”:始终将AI生成的代码视为初稿或模板。你必须以工程师的身份,对其进行审查、优化和测试。重点审查通讯时序、错误处理、资源竞争等AI可能考虑不周的地方。
  4. 版本管理:对AI生成的原始代码、你修改后的代码,以及对应的自然语言指令,做好版本管理(如使用Git)。这有助于回溯和复用。
  5. 建立校验清单:为你常用的Modbus设备类型(如流量计、温控器)创建一份代码校验清单,包括地址映射表、数据类型、字节序等。每次AI生成代码后,逐项核对。
  6. 合规与备份:定期备份你的TIA Portal项目。确保在将任何新代码下载到生产环境的PLC之前,已在仿真或测试环境中经过充分验证。严格遵守公司的软件管理和变更控制流程。

10. 总结与下一步

这个“一句中文生成博途Modbus程序”的AI项目,其理念非常吸引人,直击了工业自动化编程中重复、繁琐的痛点。它的价值不在于完全替代工程师,而在于成为一个强大的“辅助编程”工具,将工程师从重复的体力劳动中解放出来,更专注于架构设计、算法优化和系统调试。

最值得尝试的点是它的自然语言交互能力。你可以用最直接的方式描述需求,快速得到一个可运行的程序框架,这大大降低了原型验证和简单任务实施的门槛。

最先应该验证的功能是基础的单点读写。确保AI能正确理解Modbus地址规则、生成正确的MB_MASTER调用、以及合理的数据存储逻辑。这是所有复杂功能的基础。

最容易踩的坑是地址转换和字节序。AI模型可能基于公开的代码训练,而不同设备厂商、不同PLC对Modbus地址的诠释常有细微差别。字节序问题在混合数据类型(如Float)时尤其致命。这两点必须人工重点检查。

后续可以探索的方向包括:尝试让AI生成更复杂的轮询状态机、错误累计与报警程序、甚至与HMI变量自动绑定的代码。你也可以考虑将这个工具与你内部的设备数据库连接,实现从设备选型表直接生成通讯代码的自动化流水线。

工具的本质是提升效率。这个AI代码生成工具能否在你的工作流中发挥作用,取决于你如何驾驭它,将其严谨地嵌入到“需求 -> AI生成 -> 人工审核 -> 仿真测试 -> 现场调试”的标准工程流程中。建议先从一个小型、非关键的测试项目开始,积累经验,逐步建立对其输出结果的信任边界和使用规范。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/5 3:11:00

防水透气膜检测如何实现一次装夹双结果并高效对接MES系统

检测设备如果没有数据接口&#xff0c;测出来的数值就只是纸面上的一行记录。防水透气膜这种材料更是如此——它既要求阻挡液态水渗入&#xff0c;又要求空气能顺利通过&#xff0c;两个指标本身就存在平衡关系。研发阶段要比较不同膜材的平衡点&#xff0c;品质阶段要控制每一…

作者头像 李华
网站建设 2026/9/3 19:04:25

Android用Modbus4j读写PLC:从协议原理到工程避坑指南

简介&#xff1a;本资源是一套面向Android开发者的工业通信实战代码包&#xff0c;聚焦于在PDA等移动终端上通过Modbus TCP协议与PLC设备进行稳定读写交互&#xff0c;特别适合工控场景下需二次开发移动端HMI的工程师及学习嵌入式通信的新手。项目基于modbus4j.jar与seroUtils.…

作者头像 李华
网站建设 2026/9/4 14:18:24

AI服务器利润暴增现金流却暴跌:工业富联财报背后的制造真相

这次我们来看一个很有意思的现象&#xff1a;一家公司财报显示利润大幅增长&#xff0c;但现金流却急剧下滑。工业富联&#xff08;富士康工业互联网股份有限公司&#xff09;作为全球电子制造服务的巨头&#xff0c;近期因其在AI服务器领域的布局而备受关注。财报中“利润暴增…

作者头像 李华
网站建设 2026/9/3 16:06:05

C8051F全系列24款型号参考例程源码解析:从外设配置到代码移植

简介&#xff1a;本资源是Silicon Labs C8051F系列单片机全型号&#xff08;共24款&#xff09;的官方级参考程序例程源代码合集&#xff0c;面向嵌入式初学者、高校电类专业学生及硬件工程师&#xff0c;用于快速掌握该系列MCU外设驱动、USB通信、ADC/DAC配置、PWM控制、SPI/I…

作者头像 李华
网站建设 2026/9/4 12:44:38

抽卡系统后端实现:概率、保底与免费十连的工程拆解

很多玩家都有过这样的瞬间&#xff1a;小号领了一次免费十连&#xff0c;结果直接抽到了别人氪金几百抽才出的 mpx&#xff1b;而大号辛辛苦苦攒了 80 连&#xff0c;仍然颗粒无收。于是评论区开始出现两个阵营&#xff1a;一派说小号有隐藏的新手保护期&#xff0c;另一派说纯…

作者头像 李华
网站建设 2026/9/3 21:52:34

snap7完整版详解:从连接S7 PLC到高效数据采集的实战指南

简介&#xff1a;Snap7是针对西门子SIMATIC PLC开发的开源通信库&#xff0c;支持S7-300、S7-400及S7-1500等系列&#xff0c;适用于Windows、Linux、macOS平台。这份1.4.2完整版压缩包面向自动化工程师、PLC调试人员及工业通信开发者&#xff0c;可解决PC与西门子PLC之间的TCP…

作者头像 李华