一、控制系统原理

图1:控制系统原理

二、硬件需求

S7-1200 PLC目前有3种类型的CPU:

1)S7-1211C CPU
2)S7-1212C CPU
3)S7-1214C CPU
这三种类型的CPU都可以连接三个串口通信模版

本例中使用的PLC硬件为
1)PM1207电源(6EP1 332-1SH71)
2)S7-1214C(6ES7 214-1BE30-0XB0)
3)CM1241 RS232(6ES7 241-1AH30-0XB0)

三、软件需求

编程软件 Step7 Basic V10.5(6ES7 822-0AA0-0YA0)

四、组态

我们通过下述的实际操作来介绍如何在Step7 Basic V10.5中组态S7-1214C和超级终端通信

点击桌面上的“Totally Integrated Automation Portal V10”图标,打开如下图:

图2:新建S7-1200项目

首先需要选择“Create new project”选项,然后在“Project name:”里输入PTP;在“Path:”修改项目的存储路径为“C:”;点击“Create”,这样就创建了一个文件PTP的新项目。创建后的窗口如下图所示:

图3:新建项目后

点击门户视图左下角的“Project View”切换到项目视图下,如下图:

图4:切换到项目视图

打开后,在“Devices”标签下,点击“Add new device”,在弹出的菜单中输入设备名“PLC_1”并在设备列表里选择CPU的类型。选择后如下图:

图5:PLC硬件组态

插入CPU后,点击CPU左边的空槽,在右边的“Catalog ”里找到“Communication”下的RS232模块,拖拽或双击此模块,这样就把串口模块插入到硬件配置里,接下来就需要配置此RS232模块硬件接口参数,选择RS232模块,在其下方会出现该模块的硬件属性配置窗口, 在属性窗口里有两个选项,一个是“general”;一个是“RS232 interface”。在“General”里包括了此模块的“项目信息”和“订货信息”;而在“RS232 interface”里包括“项目信息”、“端口的配置”、“发送信息的配置”、“接收信息的配置”和“硬件识别号”。

在这里我们选择“RS232 interface”,在“端口”配置的选项里,进行端口的参数配置,波特率为:9600 ;校验方式:无 ;数据位为:8 ;停止位:1;硬件流控制:无;等待时间:1ms设置参数如下图:

图6:RS232接口配置

此时确认一下“硬件识别号”为11。

此时,完成了硬件的组态,接下来需要编写串口通讯程序,在这里我们实现两个功能:1. S7-1200 发送数据给超级终端(具体实现步骤如下);2. 超级终端发送数据给S7-1200(具体实现步骤如下);

1S7-1200发送数据给超级终端

S7-1200发送数据给超级终端,实际上是S7-1200是数据的发送方,超级终端是数据的接收方,对于S7-1200需要编写发送程序;而对于超级终端来说,只要打开超级终端程序,配置硬件接口参数与前面S7-1200的端口参数一只即可。

下面的步骤将具体介绍此功能实现的步骤:

1)在PLC中编写发送程序。在项目管理视图下双击“Device”下的程序块下的Main(OB1),打开OB1,在主程序中调用SEND_PTP功能块如下图所示:(注:SEND_PTP在指令库下的扩展指令中通讯指令下)

图7:调用发送功能块

要对SEND_PTP赋值参数,首先需要创建SEND_PTP的背景数据块和发送缓冲数据块 ,双击“Devices”——> “PLC_1”——>“Program Block ”——“Add new block”,在弹出的串口命名DB_Send_PTP,选择DB块,在Type后选择“SEND_PTP(SFB113)”

图8:创建发送功能块的背景数据块

插入背景DB后,再插入发送缓冲DB块,重复上面的步骤,只是在选择DB类型为“Global DB”,并去掉“Symbolic access>

图9:在接收缓冲区中接收到的数据

定义完发送缓冲区后,接下来就可以对SEND_PTP赋值参数,赋值参数后如下图:

图10:发送编程

在上面的编程块里需要注意的是,在指定发送缓冲区时。字符的开始地址是从第二个字节,而不是零字节开始,即是P#DB2.DBX2.0 Byte10 而不是P#DB2.DBX0.0 Byte10,原因是由于S7-1200对字符串的存放的格式造成的,S7-1200对字符串的前两个字节的定义第一字节是最大的字符长度,第二个字节是实际的字符长度。接下来才是存放实际字符。如下图:

图11:String存储格式

上面就完成了程序的编写,对项目进行编译;右击PLC_1项目在弹出的菜单里选择“Complies ALL”选项,这样就对硬件与软件进行编译,如下图:

图12:编译项目

编译且没有错误后就可以下载程序到PLC中,同样右击PLC_1项目,在弹出的菜单选择“Download to Device”。

2)用串口交叉线连接S7-1200的串口与计算机的串口,打开计算机的超级终端程序,并设置硬件端口参数如下图:

图13:超级终端的端口设置

3)打开OB1功能块在线监控程序,在变量监控表里强制M0.0为1,触发数据的发送,此时在超级终端就会接收到发送的数据,如下图:

图14:在超级终端监控发送来的数据

2超级终端发送数据给S7-1200

超级终端发送数据给S7-1200,实际上是S7-1200是数据的接收方,超级终端是数据的发送方,对于S7-1200需要编写接收程序;而对于超级终端来说,只要打开超级终端程序,配置硬件接口参数与前面S7-1200的端口参数一致,在界面上输入发送内容即可。

下面的步骤将具体介绍此功能实现的步骤:

1)在PLC中编写发送程序。在项目管理视图下双击“Device”下的程序块下的Main(OB1),打开OB1,在主程序中调用RCV_PTP功能块如下图所示:(注:RCV_PTP在指令库下的扩展指令中通讯指令下)

图15:调用发送功能块

要对RCV_PTP赋值参数,首先需要创建RCV_PTP的背景数据块和发送缓冲数据块 ,双击“Devices”——> “PLC_1”——>“Program Block ”——“Add new block”,在弹出的串口命名DB_RCV_PTP,选择DB块,在Type后选择“RCV_PTP(SFB114)”

图16:创建接收功能块的背景数据块

插入背景DB后,再插入接收缓冲DB块,重复上面的步骤,只是在选择DB类型为“Global DB”,并去掉“Symbolic access>

图17:定义接收缓冲区

定义完接收缓冲区后,接下来就可以对RCV_PTP赋值参数,赋值参数后如下图:

图18:接收编程

在上面的编程块里需要注意的是,在指定接收缓冲区时。字符的开始地址是从第二个字节,而不是零字节开始,即是P#DB2.DBX2.0 Byte10 而不是P#DB2.DBX0.0 Byte10,原因是由于S7-1200对字符串的存放的格式造成的,S7-1200对字符串的前两个字节的定义第一字节是最大的字符长度,第二个字节是实际的字符长度。接下来才是存放实际字符。如下图:

图19:String存储格式

上面就完成了程序的编写,对项目进行编译;右击PLC_1项目在弹出的菜单里选择“Complies ALL”选项,这样就对硬件与软件进行编译,如下图:

图20:编译项目

编译且没有错误后就可以下载程序到PLC中,同样右击PLC_1项目,在弹出的菜单选择“Download to Device”。

2)用串口交叉线连接S7-1200的串口与计算机的串口,打开计算机的超级终端程序,并设置硬件端口参数如下图:

图21:超级终端的端口设置

在桌面上新建文本文件,打开此文本文件在里面输入“gfdcba”,如下图:

图22:在文本文件下输入要发送的字符串

3)打开变量监控表,强制M0.0,使能接收。然后, 在超级终端里,选择菜单“Transfer”下的“Send Text file”,在打开的窗口里找到桌面 上的文本文件。

图23:通过超级终端发送数据

打开DB_RCV_BUFF数据块,在线查看接收到的数据,如下图:

图24:接收缓冲区中接收到的数据

通过上面的例子实现了简单的应用,在实际的应用过程中,需要按第三方设备的协议进行编写S7-1200的程序。

END

文章来源:网络,本文系网络转载,版权归原作者所有。但因转载众多,无法确认真正原始作者,故仅标明转载来源。本文所用视频、图片、文字如涉及作品版权问题,请第一时间告知,我们将根据您提供的证明材料确认版权并按国家标准支付稿酬或立即删除内容!本文内容为原作者观点,并不代表本公众号赞同其观点和对其真实性负责。

如何成为优秀的电气工程师?

扫码请咨询

左老师:18817120052(同微信)

flymcu无法打开串口_西门子1200与其他PLC/组态软件无线串口通讯(自由口)相关推荐

  1. 工业视觉-西门子-1200与海康相机软件通讯

    简述: 本文主要讲解海康工业视觉特征软件VisionMaster 4.0.0与西门子1214C型CPU之间建立通讯的配置. 设备: PC:安装VisionMaster 4.0.0,安装TIA Port ...

  2. 西门子step7安装注册表删除_如何完全卸载Siemens PLC编程软件

    无法完全卸载Siemens PLC编程软件,有两种方法可以帮助您解决它. 第一种方法 某些Siemens软件很难通过常规方法进行卸载,导致卸载后无法重新安装已卸载的软件. 注册表中需要大量操作才能再次 ...

  3. c4d软件安装上打开不了_手机上可以安装PLC编程软件吗?

    点击上方蓝字关注, 回复数字"300"领取[电气控制300例] 经常会有初学者来问,手机是否可以安装PLC编程软件?在这里明确的告诉大家,手机不可以安装PLC编程软件. 手机不支持 ...

  4. 力控 串口服务器 虚拟串口,M4系列串口服务器与力控组态软件MODBUS TCP 协议通信...

    软件需求:力控组态软件 力控 ForceControl V7.0 . 优势:无需虚拟串口软件做转发 2:MODBUS RTU 产品采用温湿度传感器读取温湿度指令是 11 04 00 00 00 02 ...

  5. 力控 串口服务器 虚拟串口,M4系列串口服务器与力控组态软件MODBUS TCP 协议通信--有人物联网.pdf...

    M4系列串口服务器与力控组态软件MODBUS TCP 协议通信--有人物联网.pdf M4 系列串口服务器与力控组态软件MODBUS TCP 协议通信 M4系列串口服务器与力控组态软件MODBUS T ...

  6. 力控 串口服务器 虚拟串口,M4系列串口服务器与力控组态软件通信实例

    软件需求:力控组态软件 力控 ForceControl V7.0 . 优势:无需虚拟串口软件即可通信, 2:串口设备采用MODBUS协议的温湿度变送器.MODBUS RTU 产品采用温湿度传感器读取温 ...

  7. 上位机与1200组态步骤_西门子1200的HSC的应用实例!

    高速计数器寻址 CPU 将每个高速计数器的测量值,存储在输入过程映像区内,数据类型为 32 位双整型有符号数,用户可以在设备组态中修改这些存储地址,在程序中可直接访问这些地址,但由于过程映像区受扫描周 ...

  8. web服务器的打开方法_西门子PLC固件升级,S71200 固件升级方法

    西门子plc如何升级固件?最近使用西门子PLC不知道怎么升级固件 1.使用存储卡更新CPU固件. 2.使用TIA 软件更新CPU固件. 3.通过Web访问方式更新CPU固件. 本文将详细介绍上述方法中 ...

  9. wincc上位机与1200组态步骤_西门子1200与WINCC上位机如何通讯?-工业支持中心-西门子中国...

    回答者: 大宝朱林森 - 高级顾问&nbsp&nbsp第14级 2020-03-04 10:49:18 我就提醒一点,装wincc的电脑必须安装step7或者SIMATIC NET软件 ...

最新文章

  1. 扎哈的绝唱:“六芒星”大兴机场的几何赏析
  2. idea自动生成get set_CTO:不要在Java代码中写set/get方法了,逮一次罚款
  3. <binding>和<operation>元素
  4. 微信公众平台--3.普通消息交互(发送与接收)
  5. PYG教程【二】使用networkx创建一个PYG图
  6. 【Linux】一步一步学Linux——dpkg命令(269)
  7. 主线程如何与次线程用全局变量通讯
  8. nand flash驱动编写步骤
  9. CAN通讯矩阵之Intel格式与Motorola格式
  10. Java正则表达式小记
  11. C# 使用 quartz.net 做定时任务
  12. 计算机里一共录入多少个汉字,计算机操作员之汉字输入方法
  13. 华为服务器网口ip配置文件,华为服务器、存储IP初始配置方法
  14. hadoop无法自动生成tmp文件
  15. CSS基础————千本樱滑落的瞬间
  16. PMP备考指南之第三章:项目经理的角色
  17. python2.7交通标志识别图_利用图像处理技术识别道路交通标志牌
  18. 淘宝api开放平台SDK调用对接淘宝或天猫
  19. python def __init___是否必须在def __init__中声明所有Python实例变量?
  20. android好玩界面,Android 带你撸一个好玩的 DoodleView(涂鸦)

热门文章

  1. Java命令:jstat — 查看JVM的GC信息
  2. 关于 std::set/std::map 的几个为什么
  3. 程序员考核的五大死因
  4. 块编码、对象编码、小波编码、分布式编码【转贴】
  5. x264里的2pass指的是什么意思? x264源代码分析2.encode()
  6. 解决: service endpoint with name xxx already exists ( docker 已删除的容器却依旧存在)
  7. 记录ionic 最小化应用时所遇的问题
  8. js - 执行上下文和作用域以及闭包
  9. cocos2d-lua3.7组件篇(三)-http通信demo
  10. C++11多线程----线程管理