经常有学员问我,学习上位机要不要买PLC硬件?

我一般的回答是:富则自行购买,穷则搭建仿真。

PLC硬件,对于学习上位机来说,是锦上添花的事,经济条件允许,有则更好,条件不允许,我们也可以通过搭建仿真环境的方式来学习,因此我专门准备了一个系列——穷学上位机系列。

01、写在前面

本文的主题是基于STEP7搭建西门子仿真环境,STEP7是西门子300系列、400系列的编程软件,早期学习PLC的小伙伴对这个一定不陌生,虽然现在可以在TIA环境下编写S7-300/400的程序,但是不可否认,仍然有很多企业(尤其是制造业)在使用S7-300/400 PLC,如果仅仅使用S7-300/400,我觉得STEP7相比博图来说,会更加小巧和方便。
软件环境:SIMATIC Manager V5.6、PLCSIM V5.4、NetToPLCsim、CMSPro硬件环境:WIN10 64位

软件获取关键词:STEP7、PLCSIM、NetToPLCsim、CMSPro【dotNet工控上位机:thinger_swj】

02、仿真步骤

1、创建项目:使用STEP7创建一个PLC项目,取名thinger_cn_PLCSimulator,插入一个SIMATIC 300站点,如下所示:

2、硬件组态:打开硬件组态,首先插入一个机架Rack,然后插入一个S7-300的CPU,最好直接选择带PN接口的,这里选择的是CPU 315-2 PN/DP,如下所示:

3、创建Ethernet:双击上图中的PN-IO,在弹出的窗体中,选择属性>>新建,然后将IP地址修改成192.168.1.123,这里的IP地址是自己设置的,只要和本机在同一网段即可。

4、编译保存:点击下图中的红框图标,将硬件组态编译并保存。件仿真300/400PLC,而不需要安装庞大的博图软件,而且这里主要采用的是NetToPLCsim的方案,也不需要安装PLCSIM-Advanced。

5、启动NetToPLCsim:以管理员权限运行NetToPLCsim,会弹出以下窗口,选择是即可。

6、启动PLCSIM:在SIMATIC Manager窗体中,点击下图中的红框图标,启动PLCSIM,如果该图标为灰色,说明PLCSIM未安装。

7、下载PLC程序:在SIMATIC Manager窗体中,点击下图中的红框图标,下载PLC程序。

8、添加Station:回到NetToPLCsim软件中,点击Add,添加Station,如下图所示:

9、Start Server:在NetToPLCsim软件中,点击Start Server,如下图所示:

10、通信测试:按照以上步骤执行完成后,一个S7-300PLC的仿真环境就搭建好了,接下来可以进行通信,这里使用的是通信测试平台,设置IP地址为192.168.1.103,PLC类型选择300PLC,读取变量选择MD0(由于没有写任何程序,也没有创建DB块,所以就直接测试M存储区变量),类型选择INT类型,读取并写入数据,进行测试,结果如下所示:【dotNet工控上位机:thinger_swj】

特别注意:这里的IP地址要填写PC的IP地址,而不是PLC的IP地址。

03、整体总结

STEP7仿真最大的好处在于可以使用SIMATIC Manager软件仿真300/400PLC,而不需要安装庞大的博图软件,而且这里主要采用的是NetToPLCsim的方案,也不需要安装PLCSIM-Advanced。

【晶晶助教微信:xiketang777】

【dotNet工控上位机:thinger_swj】

【新阁教育】穷学上位机系列——搭建STEP7仿真环境的更多相关文章

  1. 【新阁教育】基于ModbusTCP实现西门子1200PLC定位控制案例

    1. 引言 今天新阁教育给大家分享一个<基于ModbusTCP实现西门子1200PLC定位控制案例>,从PLC输入输出及步进电机接线开始,到PLC运动控制程序编写,再到后续的ModbusT ...

  2. 【新阁教育】S7.NET+Log4Net+SQLSugar+MySQL搭建Iot平台

    1.搭建西门子S7仿真环境 新阁教育提醒您基于PLCSIM-Advanced搭建西门子S7仿真环境注意事项: 1.通过dotNet工控上位机公众号后台发送PLCSIM-Advanced获取软件 2.安 ...

  3. 【新阁教育】基于EtherNet/IP实现欧姆龙NX系列PLC通信

    1.引言 工业以太网协议 (Ethernet/IP) 是由ODVA所开发并得到了罗克韦尔自动化的强大支持.它使用已用于ControlNet和DeviceNet的控制和信息协议 (CIP) 为应用层协议 ...

  4. 【新阁教育】基于Log4Net实现日志信息双向存储(含源码)

    1.引言 在上位机开发中,日志记录是必不可少的,我们可以通过日志记录做日志分析及错误追踪.初学者会采用txt文本写入来实现日志保存,但是文本写入不是线程安全,当存在多个线程同时写入日志时,就会出现一些 ...

  5. 【新阁教育】台达DVP-ES3 ModbusTCP通信案例

    本文主要针对台达DVP-ES3系列PLC,实现上位机与PLC之间的ModbusTCP通信. 一.硬件说明 DVP-ES3 系列为高阶应用可编程控制器, CPU 内置4 组高速计数器输入.4组轴输出(脉 ...

  6. Flutter 即学即用系列博客——01 环境搭建

    前言 工欲善其事,必先利其器 所以第一篇我们来说说 Flutter 环境的搭建. 笔者这边使用的是 MAC 电脑,因此以 MAC 电脑的环境搭建为例. Windows 或者 Linux 也是类似的操作 ...

  7. [Linux] PHP程序员玩转Linux系列-搭建代码开发环境

    1.PHP程序员玩转Linux系列-怎么安装使用CentOS 2.PHP程序员玩转Linux系列-lnmp环境的搭建 有些同学可能觉得我写的都是啥yum安装的,随便配置一下而已,没啥技术含量,我的目的 ...

  8. Jmeter性能测试实战教程系列-搭建分布式性能测试环境(五)

    Jmeter 是java 应用,对于CPU和内存的消耗比较大,因此,当需要模拟数以千计的并发用户时,使用单台机器模拟所有的并发用户就有些力不从心,甚至会引起JAVA内存溢出错误.为了让jmeter工具 ...

  9. 吾八哥学Python(一):搭建Python开发环境(Windows)

    学习Python的第一步当然是要配置一下开发环境了,这里记录一下本人在windows 10(64位)下配置Python开发环境的过程,供跟我一样的新手参考一下. 一.下载Python安装包 目前最新的 ...

随机推荐

  1. OpenCV图像处理学习笔记-Day4(完结)

    OpenCV图像处理学习笔记-Day4(完结) 第41课:使用OpenCV统计直方图 第42课:绘制OpenCV统计直方图 pass 第43课:使用掩膜的直方图 第44课:掩膜原理及演示 第45课:直 ...

  2. 开源 C#工作流管理平台

    { font-family: 宋体; panose-1: 2 1 6 0 3 1 1 1 1 1 } @font-face { font-family: "Cambria Math" ...

  3. c++ 在window下创建窗口的基本步骤

    1. WinMain 函数的定义: 2. 创建一个窗口 2.1 设计一个窗口类 WNDCLASS 2.2 注册窗口类 2.3 创建窗口 2.4 显示及更新窗口 3. 进行消息循环 BOOL GetMe ...

  4. c++中CreateEvent函数

    参考:https://blog.csdn.net/u011642774/article/details/52789969 函数原型: HANDLE CreateEvent( LPSECURITY_AT ...

  5. 使用SignalR和XSLT进行实时注释

    下载source code - 10.1 MB Introduction  众所周知,web请求(HTTP请求)是根据请求/响应机制工作的.通过这种方式,作为客户机的浏览器使用GET或POST向服务器 ...

  6. Cisco思科模拟器 交换机IP地址的配置 入门详解 - 精简归纳

    Cisco思科模拟器 交换机IP地址的配置 入门详解 - 精简归纳 JERRY_Z. ~ 2020 / 10 / 10 转载请注明出处!️ 目录 Cisco思科模拟器 交换机IP地址的配置 入门详解 ...

  7. MeteoInfoLab脚本示例:计算水平螺旋度

    尝试了用MeteoInfoLab编写计算水平螺旋度的脚本,结果未经验证.脚本程序: print 'Open data files...' f_uwnd = addfile('D:/Temp/nc/uw ...

  8. day63 Pyhton 框架Django 06

    内容回顾 1.装饰器 装饰器:是一个闭包函数,在不改变原函数的代码和调用方式的基础上,给原函数增加功能. def wrapper(func): def inner(*args,**kwargs): # ...

  9. day18 Pyhton学习 内置函数最后七个

    1. enumerate  枚举函数 for i in enumerate(['a','b','c'],1): print(i)#(1, 'a')(2, 'b')(3, 'c') goods_lst= ...

  10. main函数标准写法

    main函数签名 C++中允许两种格式,带参数的和不带参数的: int main() int main(int argc, const char* argv[]) 和C标准不同,C++中main函数必 ...