1200PLC与爱普生机器人modbus_TCP通讯

1200PLC与爱普生机器人modbus_TCP通讯

1.前言

首先申明一下我的硬件信息

机器人:C4-A601S

控制器:RC700

PLC:西门子S7-1200(CPU:1217C/DC/DC/DC)

2.控制器IP地址查看及修改

在配置控制器相关信息时需要先用网线连接PC与机器人控制器连接,爱普生机器人出厂设定网址为192.168.0.1(我这里是之前修改过了)

若默认没有显示以太网连接,点击右侧的增加,选择“通过以太网连接到控制器”后点击确定

如果控制器网址被修改过了,不知道是多少,可以用一根PC线,一头接在控制器的“开发用PC连接专用USB端口”另一头接在电脑USB口

这时候再在通讯处选择USB连接就可以通上了

现在就可以在“系统配置”处看到控制器的IP地址以及相关信息了,如果有需要也可以直接在这修改IP地址。

3.机器人控制器配置

网线连接好后开始配置通讯相关信息

1.控制设备

控制设备修改为远程I/O

2.现场总线

现场总线类型修改为“Modbus TCP”

端口号记住PLC配置时要用到,也可以视情况进行修改

3.修改线圈地址

在远程控制➡输入/输出处,对应信号的线圈进行修改,修改为512~2559的任意一个值

修改信号线圈是因为爱普生机器人的MODBUS地址分布,保持性寄存器对应的线圈是从512开始的

如果还是使用原线圈,就无法通过Modbus通讯进行这些信号控制

不用全部信号都修改,根据实际情况修改即可,若是只需要机器人运行,停止(不需要暂停、继续、复位),那么就只需要修改Start、Stop的对应线圈即可。

4.控制器重启

参数都修改好后点击“应用”并关闭“设备控制器”,控制器会进行重启

重启好后再点开“设备控制器”看看参数是否都修改成功

4.PLC配置

1.MB_CLIENT

因为是由PLC作为主站,所以选用MB_CLIENT指令

2.TCON_IP_V4

建立一个TCON_IP_V4数据用于设置连接所需要的地址参数

3.读写数据

还需要新建word用于存储数据或是写入数据(指针指向的地址),根据实际情况增加或减少word个数

5.通讯测试

PLC与机器人都配置好后就可以进行通讯测试了

随便写一个程序写入,方便观察机器人运行状态

打开爱普生的“I/O监视器”,将监视的信号类型修改为现场总线从站输入/输出,方便实时观察信号线圈的通断情况

打开“运行控制台”并激活远程I/O

修改word值后写入,由于之前将start的线圈修改为512,stop线圈修改为513

所以写入1时,机器人512线圈得电,机器人启动

写入2时,机器人513线圈得电,机器人停止

能在I/O监视器看到写入的信号状态,就通讯成功了

6.注意事项

不要用错通讯指令了,爱普生默认不支持作为 Modbus TCP 主站,仅支持作为Modbus TCP 从站(Server)与外部设备(如 PLC、上位机)通讯。

若业务需要机器人主动读取外部设备数据(主站功能),可通过以下方式实现:

  • 方案 1:使用 TCP Socket 编程:通过 RC + 的SetNet/OpenNet/Input/Print等指令,自定义 TCP 通讯逻辑,让机器人主动建立连接并读取外部设备数据(需外部设备支持 TCP Server 模式);
  • 方案 2:借助中间设备:通过 PLC 作为中转(PLC 同时作为 Modbus TCP 主站 + TCP Client),机器人与 PLC 通过 TCP 通讯获取数据。

Read more

如何在服务器 Ubuntu 22.04 上部署 FastAPI + Uvicorn + Nginx 生产级 Python Web 服务指南

本文从基础环境准备、部署架构设计、性能调优、安全配置到监控指标采集,全流程讲解如何在 Ubuntu 22.04 服务器 上构建一个可用于生产环境的 FastAPI + Uvicorn + Nginx Python Web 服务平台。A5数据重点聚焦实战细节、系统参数配置、性能评测与问题排查方法,适合有一定 Linux / 网络 / Python 经验的开发与运维人员阅读。 一、目标架构与适用场景 在生产环境下,单纯使用 Uvicorn 监听外部请求存在性能和安全风险,因此我们采用如下部署架构: Internet │ ▼ Nginx (反向代理 + SSL/TLS) │ proxy_pass ▼ Uvicorn Workers (基于 uvloop + Gunicorn 管理) │ FastAPI Application │ PostgreSQL / Redis / 后端微服务 适用场景包括:

【前端】Vue 组件开发中的枚举值验证:从一个Type属性错误说起

【前端】Vue 组件开发中的枚举值验证:从一个Type属性错误说起

🌹欢迎来到《小5讲堂》🌹 🌹这是《小程序》系列文章,每篇文章将以博主理解的角度展开讲解。🌹 🌹温馨提示:博主能力有限,理解水平有限,若有不对之处望指正!🌹 👨💻 作者简介 🏆 荣誉头衔:2024博客之星Top14 | ZEEKLOG博客专家 | 阿里云专家博主 🎤 经历:曾多次进行线下演讲,亦是 ZEEKLOG内容合伙人 以及 新星优秀导师 💡 信念:“帮助别人,成长自己!” 🚀 技术领域:深耕全栈,精通 .NET Core (C#)、Python、Java,熟悉主流数据库 🤝 欢迎交流:无论是基础概念还是进阶实战,都欢迎与我探讨! 目录 * 前言 * 解决过程 * 一、错误场景还原 * 1.1 错误发生的位置 * 1.2 常见的触发场景 * 二、深入理解 Vue

详细教程:如何从前端查看调用接口、传参及返回结果(附带图片案例)

详细教程:如何从前端查看调用接口、传参及返回结果(附带图片案例)

目录 1. 打开浏览器开发者工具 2. 使用 Network 面板 3. 查看具体的API请求 a. Headers b. Payload c. Response d. Preview e. Timing 4. 实际操作步骤 5. 常见问题及解决方法 a. 无法看到API请求 b. 请求失败 c. 跨域问题(CORS) 作为一名后端工程师,理解前端如何调用接口、传递参数以及接收返回值是非常重要的。下面将详细介绍如何通过浏览器开发者工具(F12)查看和分析这些信息,并附带图片案例帮助你更好地理解。 1. 打开浏览器开发者工具 按下 F12 或右键点击页面选择“检查”可以打开浏览器的开发者工具。常用的浏览器如Chrome、Firefox等都内置了开发者工具。下面是我选择我的一篇文章,打开开发者工具进行演示。 2. 使用

Flutter Web 开发:解决跨域(CORS)问题的终极指南

Flutter Web 开发:解决跨域(CORS)问题的终极指南

Flutter Web 开发:解决跨域(CORS)问题的终极指南 在 Flutter Web 开发过程中,默认情况下浏览器会遵循同源策略。当你的应用尝试加载不同域名的网络资源(如 API 接口、图片等)时,经常会遇到 CORS(跨域资源共享) 错误,导致请求失败。 虽然生产环境应由后端配置 CORS 头来解决,但在本地开发和调试阶段,我们可以通过修改 Flutter 工具链源码来临时禁用浏览器的安全策略,从而顺利调试。 以下是详细的操作步骤: 🛠️ 操作步骤 第一步:定位 chrome.dart 文件 首先,你需要找到 Flutter SDK 中负责启动 Chrome 浏览器的配置文件 chrome.dart。 参考路径(请根据你的实际安装路径调整): <你的