Modbus通讯协议在原油输送系统中的应用
发布时间:2008/5/29 0:00:00 访问次数:682
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 sl
原油输送站控系统是原油输送中不可缺少的环节,其主要是实现原油的汇集与转输,同时要对来油进行加热、加压和含水分析等,其站内主要分为加热炉系统、加压泵系统、罐区系统、流量计系统等。为了实现生产数据的集中管理、保存和打印,就需要将各个系统中的数据进行集中采集和保存,而多个系统都是采用专用的和不同厂家的控制系统,如加热炉系统、流量计系统等。因此,对中心站控系统就必须解决各个系统之间的通讯问题。
作者在对中国石油长庆油田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 sl
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 sl
原油输送站控系统是原油输送中不可缺少的环节,其主要是实现原油的汇集与转输,同时要对来油进行加热、加压和含水分析等,其站内主要分为加热炉系统、加压泵系统、罐区系统、流量计系统等。为了实现生产数据的集中管理、保存和打印,就需要将各个系统中的数据进行集中采集和保存,而多个系统都是采用专用的和不同厂家的控制系统,如加热炉系统、流量计系统等。因此,对中心站控系统就必须解决各个系统之间的通讯问题。
作者在对中国石油长庆油田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 sl