初识上位机(上):搭建PLC模拟仿真环境
大家好,我是Edison。
作为一个工业自动化领域的程序员,不懂点PLC和上位机,貌似有点说不过去。这里我用两篇小文带你快速进入上位机开发领域。后续,我会考虑再出一个系列文章一起玩工控上位机。
什么是上位机
上位机,通常是指在数据采集与控制系统中位于较高层级、具有较强数据处理能力和控制功能的计算机设备。它通过通信接口(如串口、网口等)与下位机(如PLC、单片机或其他智能设备)进行数据交换和指令传达,实现对下位机的监控、配置、数据收集和分析等功能。简单理解,就是对PLC进行监控和数据采集分析。

做上位机开发的必备软件
建议下载和安装下列软件:
Windows下网络工具 - WinPcap
西门子PLC模拟软件 - PLCSIM Advanced v3.0
西门子博途软件套件 - TIA Portal v15
关注EdisonTalk公众号,并在公众号内回复“上位机”,可以获得我整理好的下载链接。
建议按照WinPcap -> PLCSIM -> TIA Portal的顺序安装。
至于安装过程,可以自行搜索,或参考下列文章。所有软件仅供学习参考,本文不做详细解读:
常哥说编程《西门子软件安装指南》
配置虚拟网卡
安装完成PLCSIM Advanced后,会多一个虚拟网卡出来。

这里我们点开这个虚拟网卡,设置一下静态IP。

创建一个虚拟PLC
打开PLCSIM Advanced,按照下列步骤创建一个PLC实例。这里需要注意的实,PLC实例的IP地址需要和刚刚设置的虚拟网卡在同一个网段,这里是192.168.10.x。

创建完成后,由于PLC实例并未正式启动,因此亮黄灯。
创建博途自动化项目
接下来就是最为关键的步骤,打开博途TIA Portal,进行以下操作:
(1)创建一个项目

(2)添加PLC设备

(3)添加完成后得到项目视图

(4)为设备设置“允许来自远程对象的PUT/GET通信访问”

(5)为项目设置“块编译时支持仿真”

(6)为设备设置IP地址

注意:上面截图中的IP地址我当时写错了,应该是192.168.10.200,和虚拟PLC的IP地址保持一致!
(7)为设备添加一个数据块,取名“DB01”

(8)添加一些字段,并点击编译按钮,编译完成后得到偏移量

(9)点击下载到设备的按钮,并选择虚拟网卡,然后搜索到我们的虚拟PLC设备,最后点击下载。


验证PLC实例状态
成功装载到设备后,我们的PLC实例的状态就会由黄灯 变为 绿灯,说明已经正常启动好了。

那么,接下来,我们就可以通过C#编写一个DEMO来读取和写入PLC的数据块中的数据了。
那就留到下一篇吧,请保持关注。

初识上位机(上):搭建PLC模拟仿真环境的更多相关文章
- 基于S7-PLCSIM Advanced搭建S7通信仿真环境
写在前面: 之前有专门讲过一期如何搭建西门子PLC的S7通信仿真环境,感兴趣的可以点击查看:戳↓ 1.基于TIA搭建西门子PLC仿真环境及通信方案-联合出品 2.手把手教你搭建西门子PLC仿真环境 那 ...
- Ubuntu上搭建Watir-Webdriver与Cucumber环境
本文主要演示如何在Ubuntu上搭建Watir-Webdriver与Cucumber环境,用于自动化测试. 1. Ubuntu环境 A. 安装 因为我的工作机是Windows,所以采用虚拟机的方式使用 ...
- mac上搭建appium+IOS自动化测试环境(二)
上一篇: mac上搭建appium+IOS自动化测试环境(一) 9.安装appium-xcuitest-driver依赖 进入WebDriverAgent安装目录,运行bootstrap 首先进入目录 ...
- mac上搭建appium+IOS自动化测试环境(一)
阅读须知 由于OS X系统最近才开始接触,所以有些东西也不是很清楚,这里只提供方法不提供原理,能解释清楚的我也会尽量解释.可能也有一些地方说的不严谨或有错的,还望大家指点一二. 实验环境 操作系统: ...
- 转-在Mac OS上搭建Python的开发环境
在Mac OS上搭建Python的开发环境 本文转载自:http://www.jb51.net/article/76931.htm 一. 安装python mac系统其实自带了一个python的执 ...
- 【新阁教育】穷学上位机系列——搭建STEP7仿真环境
经常有学员问我,学习上位机要不要买PLC硬件? 我一般的回答是:富则自行购买,穷则搭建仿真. PLC硬件,对于学习上位机来说,是锦上添花的事,经济条件允许,有则更好,条件不允许,我们也可以通过搭建仿真 ...
- c#上位机与三菱PLC(FX3U)串口通讯
项目中会经常用到上位机与PLC之间的串口通信,本文介绍一下C#如何编写上位机代码 与三菱FX3U进行通讯 1. 第一种方法是自己写代码实现,主要代码如下: //对PLC的Y7进行置1 byte[] Y ...
- 搭建Modelsim SE仿真环境-使用do文件仿真
本章我们介绍仿真环境搭建是基于Modelsim SE的.Modelsim有很多版本,比如说Modelsim-Altera,但是笔者还是建议大家使用Modelsim-SE,Modelsim-Altera ...
- 在Ubuntu上搭建kindle gtk开发环境
某个角度上说,kindle很类似android,同样的Linux内核,同样的Java用户层.不过kindle更注重简单.节能.稳定.Amazon一向认为,功能过多会分散人们阅读时候的注意力. Kind ...
- 1、在MAC上搭建React Native开发环境
@import url(http://i.cnblogs.com/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/c ...
随机推荐
- #搜索,容斥#洛谷 2567 [SCOI2010]幸运数字
题目 问区间\([l,r],l,r\leq 10^{10}\)中有多少个数是 数位由6或8组成的数的倍数(包括本身) 分析 数位由6或8组成的数最多有两千多种, 这可以直接一遍暴搜得到 对于区间\([ ...
- #树上带修莫队,树链剖分#洛谷 4074 [WC2013]糖果公园
题目 分析 考虑将树转换成序列求解,那就用欧拉序,入栈一次出栈一次正好抵消掉 注意当起点不是LCA的时候要将起点加入,剩下就是带修莫队板子题了 代码 #include <cstdio> # ...
- C# 面试问答
引用:https://www.cnblogs.com/zh7791/p/13705434.html 1.什么是 COM? COM 代表组件对象模型.COM 是微软技术之一.使用这项技术,我们可以开 ...
- MyBatis resultMap中collection过滤空字段
在使用MyBatis查询数据时,返回值可以定义为resultMap. 如果返回的对象中有列表,还可以使用collection标签进行定义. 此时,如果不想某些字段为空的数据加入列表,可以使用notNu ...
- 比nestjs更优雅的ts控制反转策略-依赖查找
一.Cabloy5.0内测预告 Cabloy5.0采用TS对整个全栈框架进行了脱胎换骨般的大重构,并且提供了更加优雅的ts控制反转策略,让我们的业务开发更加快捷顺畅 1. 新旧技术栈对比: 后端 前端 ...
- sql 语句系列(列举非索引外键)[八百章之第九章]
列举非索引外键 列举出那些外键没有添加索引. 目的: 1.减少锁. 2.外键添加索引,提示了查询性能,因为要与父表做连接查询做笛卡尔积. 下面只要会复制即可,没有会去从新写一遍的. select fk ...
- docker 应用篇————es[八]
前言 简单介绍一下es镜像. 正文 首先安装一下: elasticSearch. 启动一下: 然后就可以访问了. 使用一下docker stats 然后你就发现了这个docker 容器启动的时候要1. ...
- VScode 使用emmet
背景 在很多的编辑场合,很多时候回出现很多逻辑性的问题.可能觉得html是一门没有逻辑的语言,实际上,它是有一定的思想编辑的.后来出现了emmet,这个不仅仅是一种快捷方式,同时也是一种思考方式. 解 ...
- sweetviz工具避坑和简单使用
网上关于sweetviz的文章比较少,有些坑这里说一下给大家避坑. 使用sweetviz遇到的错误如下: KeyError: "None of ['index'] are in the co ...
- Kafka的实现细节
Kafka的实现细节 一.Topic和Partition 在Kafka中的每一条消息都有一个topic.一般来说在我们应用中产生不同类型的数据,都可以设置不同的主题.一个主题一般会有多个消息的订阅者, ...