0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

西门子S7-1200与第三方设备自由口通信详解

laidenongfhs 来源:中泰PLC自动化教学 2023-07-24 15:39 次阅读

西门子S7-1200紧凑型PLC在当前的市场中有着广泛的应用,由于其性价比高,所以常被用作小型自动化控制设备的控制器,这也使得它经常与第三方的设备扫描枪、打印机等设备进行通讯。因为没有第三方的设备,这里就以超级终端为例介绍自由口通讯。

1.控制系统原理

6f58c758-29f4-11ee-a368-dac502259ad0.png

图1:控制系统原理

2.硬件需求
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 )

3.软件需求

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

4.组态

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

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

6f7d9560-29f4-11ee-a368-dac502259ad0.jpg

图2:新建S7 -1200项目

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

6f9c8920-29f4-11ee-a368-dac502259ad0.jpg

图3:新建项目后

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

6fab5310-29f4-11ee-a368-dac502259ad0.jpg

图4:切换到项目视图

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

6fbed0fc-29f4-11ee-a368-dac502259ad0.jpg

图5:PLC硬件组态

插入CPU后,点击CPU左边的空槽,在右边的“Catalog ”里找到“Communication”下的RS232模块,拖拽或双击此模块,这样就把串口模块插入到硬件配置里,接下来就需要配置此RS232模块硬件接口参数,选择RS232模块,在其下方会出现该模块的硬件属性配置窗口,在属性窗口里有两个选项,一个是“general”;一个是“RS232 interface”。在“General”里包括了此模块的“项目信息”和“订货信息”;而在“RS232 interface”里包括“项目信息”、“端口的配置”、“发送信息的配置”、“接收信息的配置”和“硬件识别号”。在这里我们选择“RS232 interface”,在“端口”配置的选项里,进行端口的参数配置,
波特率为:9600;
校验方式:无;
数据位为:8 ;
停止位:1;
硬件流控制:无;
等待时间:1ms
设置参数如下图:

6fcea72a-29f4-11ee-a368-dac502259ad0.png

图6:RS232接口配置

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

此时,完成了硬件的组态,接下来需要编写串口通讯程序,在这里我们实现两个功能:
A、 S7-1200发送数据给超级终端;
B、超级终端发送数据给S7-1200

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

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

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

6ff64d8e-29f4-11ee-a368-dac502259ad0.jpg

图7:调用发送功能块

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

7012a542-29f4-11ee-a368-dac502259ad0.png

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

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

702aa390-29f4-11ee-a368-dac502259ad0.jpg

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

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

7039d68a-29f4-11ee-a368-dac502259ad0.png

图10:发送编程

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

7052c7f8-29f4-11ee-a368-dac502259ad0.png

图11:String存储格式

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

7067d62a-29f4-11ee-a368-dac502259ad0.jpg

图12:编译项目

编译且没有错误后就可以下载程序到PLC中,同样右击PLC_1项目,在弹出的菜单选择“Download to Device”。
②、用串口交叉线连接S7-1200的串口与计算机的串口,打开计算机的超级终端程序,并设置硬件端口参数如下图:

7079c7cc-29f4-11ee-a368-dac502259ad0.jpg

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

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

708ca4f0-29f4-11ee-a368-dac502259ad0.png

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

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

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

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

70a87694-29f4-11ee-a368-dac502259ad0.jpg

图15:调用发送功能块

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

70b4eeec-29f4-11ee-a368-dac502259ad0.jpg

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

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

70c76266-29f4-11ee-a368-dac502259ad0.jpg

图17:定义接收缓冲区

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

70d7789a-29f4-11ee-a368-dac502259ad0.jpg

图18:接收编程

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

70f2ab74-29f4-11ee-a368-dac502259ad0.png

图19:String存储格式

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

71093ae2-29f4-11ee-a368-dac502259ad0.jpg

图20:编译项目

编译且没有错误后就可以下载程序到PLC中,同样右击PLC_1项目,在弹出的菜单选择“Download to Device”。
②、用串口交叉线连接S7-1200的串口与计算机的串口,打开计算机的超级终端程序,并设置硬件端口参数如下图:

7132d67c-29f4-11ee-a368-dac502259ad0.jpg

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

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

714b1890-29f4-11ee-a368-dac502259ad0.png

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

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

71683d26-29f4-11ee-a368-dac502259ad0.jpg

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

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

7189088a-29f4-11ee-a368-dac502259ad0.jpg

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

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

审核编辑:汤梓红
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 控制系统
    +关注

    关注

    41

    文章

    5963

    浏览量

    108713
  • 通信
    +关注

    关注

    18

    文章

    5706

    浏览量

    134396
  • 西门子
    +关注

    关注

    92

    文章

    2849

    浏览量

    113777
  • S7-1200
    +关注

    关注

    11

    文章

    328

    浏览量

    17222

原文标题:西门子S7-1200与第三方设备自由口通信详解

文章出处:【微信号:中泰PLC自动化教学,微信公众号:中泰PLC自动化教学】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    如何通过西门子S7-1200紧凑型PLC实现自由口通讯

    西门子S7-1200 紧凑型PLC在当前的市场中有着广泛的应用,由于其性价比高,所以常被用作小型自动化控制设备的控制器,这也使得它经常与第三方设备
    发表于 07-06 11:29 2774次阅读

    西门子S7-1200系列PLC输入/输出接线

    西门子S7-1200是一款紧凑型、模块化的PLC,可完成简单逻辑控制、高级逻辑控制、HMI 和网络通信等任务。下面分享S7-1200系列PLC输入/输出接线图给大家。
    的头像 发表于 06-26 09:22 3233次阅读
    <b class='flag-5'>西门子</b><b class='flag-5'>S7-1200</b>系列PLC输入/输出接线

    西门子S7-1200以太网接口通信功能分享

    ProFinet通信的仪器仪表通信S7-1200第三方支持ProFinet通信的仪器仪表通信
    发表于 02-24 19:59

    西门子S7-1200高速计数功能简介

    西门子S7-1200高速计数功能简介说明。
    发表于 04-23 09:35 15次下载

    如何通过S7-1200第三方设备实现自由通信

    如何通过S7-1200第三方设备实现自由通信说明。
    发表于 04-25 11:18 15次下载

    西门子S7-1200接入MQTT私有云平台

    西门子S7-1200接入MQTT私有云平台,PLC网关数据采集BL110
    发表于 11-11 16:21 3235次阅读
    <b class='flag-5'>西门子</b><b class='flag-5'>S7-1200</b>接入MQTT私有云平台

    西门子S7-1200和S7-1500编程风格指南

    西门子S7-1200和S7-1500编程风格指南分享
    发表于 08-17 17:30 17次下载

    如何通过网关对西门子S7-1200 PLC远程监控?

    如何通过网关对西门子S7-1200 PLC远程监控?
    的头像 发表于 11-01 09:02 4141次阅读
    如何通过网关对<b class='flag-5'>西门子</b><b class='flag-5'>S7-1200</b> PLC远程监控?

    西门子S7-1200与组态软件之间无线MODBUS通信实例

    本方案是组态软件与西门子 S7-1200进行无线 MODBUS 通信的实现方法。此方案可以作为西门子 S7-1200与组态软件的无线 MOD
    的头像 发表于 01-11 09:27 2188次阅读
    <b class='flag-5'>西门子</b><b class='flag-5'>S7-1200</b>与组态软件之间无线MODBUS<b class='flag-5'>通信</b>实例

    如何通过S7-1200第三方设备实现自由通信

    -西门子S7-1200 紧凑型PLC在当前的市场中有着广泛的应用,由于其性价比高,所以常被用作小型自动化控制设备的控制器,这也使得它经常与第三方
    的头像 发表于 02-14 15:11 711次阅读

    西门子PLC的五种通信方式

    第三方设备大部分支持,西门子S7 PLC可以通过选择自由通信模式控制串口通信。最简单的情况是只
    发表于 03-16 16:28 2540次阅读

    西门子S7-1200系列PLC与上位机的配置

    此次主要将的是关于西门子S7-1200系列PLC与上位机通过哪些特定的条件,来实现通讯的配置分享。
    发表于 05-25 17:38 19次下载
    <b class='flag-5'>西门子</b><b class='flag-5'>S7-1200</b>系列PLC与上位机的配置

    西门子PLC S7-1200在线下载功能分享

    西门子PLC S7-200系列的升级版,西门子PLC S7-1200具有很多集成在CPU上的功能,与此同时,它的组态软件STEP7 V13具有各种组织块,可以帮助用户实现多种不同的功能。西门子
    的头像 发表于 06-25 16:25 1613次阅读

    PLC网关采集西门子S7-1200对接MQTT服务器的操作步骤详解

    钡铼技术PLC网关采集西门子S7-1200对接MQTT服务器的操作步骤详解
    的头像 发表于 09-12 09:50 1972次阅读
    PLC网关采集<b class='flag-5'>西门子</b><b class='flag-5'>S7-1200</b>对接MQTT服务器的操作步骤<b class='flag-5'>详解</b>

    PLC西门子S7-200smart和S7-1200的区别?

    PLC西门子S7-200smart和S7-1200的区别? 西门子S7-200 smart和S7-1200西门子公司推出的两个PLC产品系
    的头像 发表于 11-17 11:41 4831次阅读