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

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

3天内不再提示

基于Modbus RTU通讯协议和S7 400 PLC实现原油输送站控系统的设计

电子设计 来源:可编程控制器与工厂自动 作者:翁根舂 2020-11-24 10:22 次阅读

1、 引言

原油输送站控系统是原油输送中不可缺少的环节,其主要是实现原油的汇集与转输,同时要对来油进行加热、加压和含水分析等,其站内主要分为加热炉系统、加压泵系统、罐区系统、流量计系统等。为了实现生产数据的集中管理、保存和打印,就需要将各个系统中的数据进行集中采集和保存,而多个系统都是采用专用的和不同厂家的控制系统,如加热炉系统、流量计系统等。因此,对中心站控系统就必须解决各个系统之间的通讯问题。

在对中国石油长庆油田XX管道沿河湾SCADA系统的设计中,就遇到此类问题,即加热炉系统采用的是北京亚控自动化公司的组态王软件进行监控,而中心SCADA系统则采用Siemens公司的S7 400 PLC和Wincc软件进行监控,并且在通讯电缆的设计中采用的是两芯屏蔽电缆,因此就无法采用工业以太网和OPC协议实现互相之间的通讯,最后双方决定采用Modbus RTU通讯协议进行通讯。

2、通讯系统组成

中国石油长庆油田XX管道沿河湾站控系统采用的是Siemens S7 400和ET200M系列PLC,其监控系统原理图如下所示:

为了实现站控计算机可以同加热炉系统通过Modbus RTU协议进行通讯,采集必要的数据,在ET200M子站中配置了Siemens公司S7 300系列PLC中的CP341通讯模块。CP341通讯模块是通过点到点连接,用于高速,强大的串行数据交换,以减轻CPU的负担。该模块提供了三种不同类型的传输接口

(1)、RS232C(V.24) (2)、20mA(TTY) (3)、Rs422/Rs485(X.27)

同时,该模块内置有ASCII、3964(R)和RK512通讯协议,此外,该模块也可以装载其他的通讯协议,如Modbus Master协议、Modbus Slave协议和Data Highway协议。

在本设计中,CP341作为Modbus RTU Master,组态王作为Modbus RTU Slave,CP341通过单独定购的Modbus RTU Master软件来实现双方的主从通讯,其可以实现的功能代码为:01,02,03,04,05,06,07,08,11,12,15,16,传输速率最高可以达到76.8Kbit/s。CP341与组态王运行的工业控制计算机之间的通讯为Rs485方式,其连接方式如下所示:

3、软件实现方法

要通过CP341通讯模块同组态王之间的通讯,软件的设计也是一个比较重要的环节,对于CP341主要包括Modbus Master的下装和对应的发送、接收模块程序的设计,对于组态王侧则需要安装Modbus Slave的驱动程序。在CP341中下载Modbus Master驱动,可以进入Step7中的Hardware Configuration中选中模块双击,在弹出的窗口中选择Parameter按钮,在出现的Assigning Parameters to Point-To-Point Connections窗口中进行对应的驱动下载。CP341接收、发送程序的设计主要包括DB块的设计和FC功能块的调用。

(1)、CP341发送模块的设计

对于通过CP341的Modbus Master驱动通讯的发送模块需要设计DB块和FC块,其DB块的结构如下:

而发送程序主要是通过调用功能块FB8来实现,其程序可以设计为如下:

(2)、CP341接收程序的设计

由于CP341可以处理接收程序的细节部分,因此对于设计者来说只需要进行简单的设计就可以实现数据的接收。接收程序同样也需要设计Db块和FC程序块,其DB块和FC块的结构可以定义成如下的结构:

(3)、组态王程序设计方法

组态王是作为Modbus Slave端的,其通过安装ModbusRTUServer驱动程序和定义“智能模块――北京亚控――ModRTUServer――串口”通讯设备来实现的。组态王提供2种寄存器,其说明如下:

名字 编号范围 数据类型 含义

B 1 “ 30000 BIT 开关寄存器

R 1 ” 30000 INT/UINT/LONG/FLOAT 数据寄存器

外部设备通过标准Modbus与组态王驱动进行通讯,使用的功能码对应如下:

寄存器 读功能码 写功能码

B 1,2 5

R 3,4 6,16

由此,仅需要定义对应的变量名称,并且通过周期执行的命令语言,将数据赋给对应的外部通讯设备需要读取的变量中就可以完成通讯功能。组态王是通过不断的监听串口的通讯数据,一旦有外部读取数据命令,组态王就将对应的数据传送到对方。

在调试双方的通讯程序时,需要注意以下几点:第一、在PLC程序中调用发送模块FB8时,其R_TYP参数数值为字符型并且必须为大写字母X,否则通讯不能成功;第二、为了使PLC接收程序比较简单,建议将组态王侧的数据均定义成寄存器(R),而不区分是位还是寄存器;第三、在组态王中定义Modbus Slave地址时,采用1:20的结构,其1代表组态王作为Modbus Slave的从站地址,20代表通讯的时间间隔,单位毫秒。

4、结束语

通过使用CP341点对点通讯模块和组态王ModbusRTUServer驱动程序,解决了不同的应用系统之间通过Modbus标准通讯进行互相通讯的方法,同时也为将不同系统的数据集成到一个系统中提供了可能的实现方法。

责任编辑:gt

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

    关注

    5008

    文章

    13149

    浏览量

    461985
  • 电缆
    +关注

    关注

    18

    文章

    2690

    浏览量

    54666
  • 通讯协议
    +关注

    关注

    10

    文章

    271

    浏览量

    20320
收藏 人收藏

    评论

    相关推荐

    Modbus RTU转PROFINET协议转换网关 HT1S-PNS485-S10

    ,能够实现Modbus RTU/RS485/232接口仪表、变频器、综保、软启动器等设备接入到S7-1200、S7-1500、CPU315-
    发表于 06-06 14:43

    【EVB-335X-II试用体验】之EVB-335X-II通过Modbus-RTU协议控制西门子S7-200 Smart系列PLC(真正的工业级应用案例)

    S7-1500+S7-200 Smart相结合的方式。其中S7-200 Smart系列PLC天然支持Modbus RTU
    发表于 08-09 12:47

    labview上位机控制 西门子S7 200modbus通讯

    西门S7 200modbus通讯,labview作为上位机,与之通讯!附件是西门子PLC程序和labview程序!
    发表于 01-22 23:31

    移通创联MODBUS转PROFIBUS网关和霍尼韦尔DCS系统之间通讯

    MODBUS通讯协议,而西门子PLC对中央空调冷水机组的数据采集通讯协议是Profibus-DP
    发表于 10-29 19:37

    如何快速实现Modbus RTUModbus TCP协议转换?

    Modbus RTUModbus TCP,实现不同协议设备通讯呢?01物通博联工业智能网关
    发表于 08-18 18:36

    基于Modbus RTU协议实现的1主多从自组网无线通信形式

      本方案是基于Modbus RTU协议实现的1主多从自组网无线通信形式,主S7-1200
    发表于 03-10 14:54

    MODBUS通讯协议及编程

    ModBus通讯协议分为RTU协议和ASCII协议,下面就M
    发表于 07-17 11:58 1.5w次阅读

    S7通讯的功能及特点

    S7通讯S7-communication)主要英语S7-400/400S7-400/300
    发表于 09-29 15:16 19次下载
    <b class='flag-5'>S7</b><b class='flag-5'>通讯</b>的功能及特点

    S7200 Modbus通讯协议远程终端设备RTU和从示例

    本文档的主要内容详细介绍的是S7200 Modbus通讯协议远程终端设备RTU和从
    发表于 10-25 08:00 32次下载
    <b class='flag-5'>S</b>7200 <b class='flag-5'>Modbus</b><b class='flag-5'>通讯</b><b class='flag-5'>协议</b>远程终端设备<b class='flag-5'>RTU</b>主<b class='flag-5'>站</b>和从<b class='flag-5'>站</b>示例

    如何在S7-200 CPU上实现Modbus RTU通信协议

    S7-200 CPU上的通信口Port0可以支持Modbus RTU协议,成为Modbus RTU
    发表于 03-18 08:00 3次下载

    两个S7-200-PLC之间Modbus通讯实现(从

    两个S7-200-PLC之间Modbus通讯实现(从)方法。
    发表于 04-25 11:24 28次下载

    S7通信协议介绍 s7协议和profinet协议区别

    S7协议和Profinet协议都是工业自动化领域中常用的通信协议,其中S7协议是传统的工控领域常
    发表于 05-08 16:19 2.5w次阅读

    Profinet转Modbus RTU网关连接PLC与多功能电表modbus通讯配置案例

    (XD-MDPN100)的作用就是将Profinet协议转换为Modbus RTU协议,从而实现PLC
    的头像 发表于 10-19 16:51 758次阅读
    Profinet转<b class='flag-5'>Modbus</b> <b class='flag-5'>RTU</b>网关连接<b class='flag-5'>PLC</b>与多功能电表<b class='flag-5'>modbus</b><b class='flag-5'>通讯</b>配置案例

    Profinet转Modbus RTU网关连接PLC与多功能电表modbus通讯

    Profinet是一种工业以太网通讯协议,广泛用于工业自动化系统中。而Modbus RTU是一种串行通信
    的头像 发表于 11-23 10:13 597次阅读
    Profinet转<b class='flag-5'>Modbus</b> <b class='flag-5'>RTU</b>网关连接<b class='flag-5'>PLC</b>与多功能电表<b class='flag-5'>modbus</b><b class='flag-5'>通讯</b>

    S7协议读取西门子S7-200 Smart PLC数据

    西门子S7-200 Smart PLC因其稳定性和易用性而广泛应用。通过使用S7协议,可以实现PLC
    的头像 发表于 07-11 11:55 4840次阅读
    <b class='flag-5'>S7</b><b class='flag-5'>协议</b>读取西门子<b class='flag-5'>S7</b>-200 Smart <b class='flag-5'>PLC</b>数据