电工学习网

 找回密码
 立即注册
查看: 2485|回复: 0
打印 上一主题 下一主题

通过S7-1200与第三方设备实现自由口通信

[复制链接]
跳转到指定楼层
楼主
发表于 2021-2-24 16:01:35 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

西门子S7-1200紧凑型plc在当前的市场中广泛使用的,由于其性价比高,所以常被采用小型自动化控制设备的控制器,这也是经常与第三方的设备(扫描枪) ,打印机等设备进行通讯。因为没有第三方的设备,这里就以超级终端引入了自由口通讯。


01
控制系统原理

通过S7-1200与第三方设备实现自由口通信

02
硬件需求

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)

03
软件需求

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

04
布局


我们通过按照惯例的实际操作来介绍如何在Step7 Basic V10.5中配置S7-1214C和超级终端通信。

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

通过S7-1200与第三方设备实现自由口通信


首先需要选择“创建新项目”选项,然后在“项目名称:”里输入PTP;在“路径:”中,将项目的存储路径设置为“ C:”;单击“创建”,这样就创建了一个文件PTP的新项目。创建后的窗口如下图所示:

通过S7-1200与第三方设备实现自由口通信


点击门户预览左下角的“ Project View”切换到项目预览下,如下图:
通过S7-1200与第三方设备实现自由口通信

切换到项目后,在“设备”标签下,单击“添加新设备”,在弹出的菜单中输入设备名称“ PLC_1”,并在设备列表中选择CPU的类型。选择后如下图:
通过S7-1200与第三方设备实现自由口通信

插入CPU后,单击CPU左边的空槽,在右边的“ Catalog”里找到“ Communication”下一个的RS232模块,拖拽或双击此模块,这样就把把串行器插入到硬件配置里,然后就需要配置此后RS232模块硬件接口参数,选择RS232模块,在其下面的会出现该模块的硬件配置窗口,在属性窗口中就有两个选项,一个是“通用”;一个是“ RS232接口”。在“常规”里包括了此模块的“项目信息”和“命令信息”;而在“ RS232接口”里包括“项目信息”,“端口的配置”,“发送信息的配置”,“接收信息的配置”和“在这里我们选择“ RS232 interface”,在“端口”配置的选项里,进行的参数配置,波特率为:9600;校准方式:无;数据位为:8;停止位:1;硬件流控制:无;等待时间:1ms。
设置参数如下图:
通过S7-1200与第三方设备实现自由口通信

此时确认一下“硬件识别号”为11。
然后,完成了硬件的配置,接下来需要编写串行通讯程序,在这里我们实现两个功能:一,S7-1200发送数据给超级终端;二,超级终端发送数据给S7-1200对于第一个功能:S7-1200发送数据给超级终端,则是S7-1200是数据的发送方,超级终端是数据的接收方,对于S7-1200需要编写发送程序;而对于超级终端则意味着,只要:超级终端程序,配置硬件接口参数与前面S7-1200的扩展参数即可。下面的步骤将具体介绍此功能实现的步骤:

①,在PLC中编写程序,然后在主菜单(OB1)上,在OB1,在主程序中调用SEND_PTP功能块,如图所示:(SEND_PTP)在指令库下一个的扩展指令中通讯指令下一个)

通过S7-1200与第三方设备实现自由口通信


要对SEND_PTP赋值参数,首先需要创建SEND_PTP的背景数据块和发送缓冲数据块,双击“设备”->“ PLC_1” ————>“程序块” ————“添加新块”, DB_Send_PTP,选择DB块,在类型后选择“ SEND_PTP(SFB113)”

通过S7-1200与第三方设备实现自由口通信


插入背景DB后,再重新插入发送缓冲DB块,重复上面的步骤,只是在选择DB类型为“ Global DB”,并去掉“ Symbolic access only”选项勾(这样就可以将该DB块进行直接访问)建好这两个DB块后,,双击:DB_SEND_BUFF预先定义好要发送的数据,如下图所示:

通过S7-1200与第三方设备实现自由口通信


定义完发送上下文之后,接下来就可以对SEND_PTP赋值参数,赋值参数后如下图:

通过S7-1200与第三方设备实现自由口通信


字符的开始地址是从第二个字节,而不是零字节开始,即是P#DB2.DBX2.0 Byte10而不是P#DB2.DBX0.0 Byte10,原因是由于S7-1200对串行的放置的格式造成的,S7-1200对串行的前两个字节的定义的第一字节是最大的字符长度,第二个字节是实际的字符长度接下来才是存放实际字符如下图:

通过S7-1200与第三方设备实现自由口通信


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

通过S7-1200与第三方设备实现自由口通信


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

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

通过S7-1200与第三方设备实现自由口通信

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

通过S7-1200与第三方设备实现自由口通信


对于第二个功能:超级终端发送数据给S7-1200,即是S7-1200是数据的接收方,超级终端是数据的发送方,对于S7-1200需要编写接收程序;而对于超级终端则意味着,,只要:超级终端程序,配置硬件接口参数与前面S7-1200的扩展参数一致,在界面上输入发送内容即可。

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

①,在PLC中编写程序,然后在主菜单(OB1)上,在OB1,在主程序中称其为RCV_PTP功能块,如下图所示:(注:RCV_PTP在指令库下一个的扩展指令中通讯指令下一个)

通过S7-1200与第三方设备实现自由口通信


要对RCV_PTP赋值参数,首先需要创建RCV_PTP的背景数据块和发送缓冲数据块,双击“设备”->“ PLC_1” ————>“程序块”-“添加新块”, DB_RCV_PTP,选择DB块,在类型后选择“ RCV_PTP(SFB114)”

通过S7-1200与第三方设备实现自由口通信


插入背景DB后,再插入接收缓冲DB块,重复上面的步骤,只是在选择DB类型为“ Global DB”,并去掉“ Symbolic access only”(选择符号访问)选项勾(这样可以将该DB块进行直接访问),建好这两个DB块后,,双击:DB_RCV_BUFF定义为接收数据的数据类型,如下图所示:

通过S7-1200与第三方设备实现自由口通信


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

通过S7-1200与第三方设备实现自由口通信


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

通过S7-1200与第三方设备实现自由口通信

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

通过S7-1200与第三方设备实现自由口通信

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

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

通过S7-1200与第三方设备实现自由口通信


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

通过S7-1200与第三方设备实现自由口通信


③:变量监控表,强制M0.0,使能接收。然后,在超级终端里,选择菜单“传输”下一个的“发送文本文件”,在桌面上找到一个文本文件。

通过S7-1200与第三方设备实现自由口通信


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

通过S7-1200与第三方设备实现自由口通信


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


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

电工学习网 ( )

GMT+8, 2024-4-24 03:58

Powered by © 2011-2022 www.diangon.com 版权所有 免责声明 不良信息举报

技术驱动未来! 电工学习网—专业电工基础知识电工技术学习网站。

栏目导航: 工控家园 | 三菱plc | 西门子plc | 欧姆龙plc | plc视频教程

快速回复 返回顶部 返回列表