北京交通大学电气工程学院通信与现场通信总线课程设计结题报告.docx
《北京交通大学电气工程学院通信与现场通信总线课程设计结题报告.docx》由会员分享,可在线阅读,更多相关《北京交通大学电气工程学院通信与现场通信总线课程设计结题报告.docx(32页珍藏版)》请在冰豆网上搜索。
![北京交通大学电气工程学院通信与现场通信总线课程设计结题报告.docx](https://file1.bdocx.com/fileroot1/2022-11/28/8dacf6a8-f931-42e0-a069-d5abb34b984a/8dacf6a8-f931-42e0-a069-d5abb34b984a1.gif)
北京交通大学电气工程学院通信与现场通信总线课程设计结题报告
通信与现场总线课程设计
结题报告
学院:
电气工程学院
班级:
学号:
姓名:
指导老师:
胡小刚
完成日期:
****/**/**
一、设计任务
1.1系统介绍
图1.1设计任务中的网络结构图
控制系统的网络结构如图1.1所示。
现场控制层是一个工业现场总线PROFIBUS网。
SIEMENS的可编程序控制器S7-300,CPU为314C-2DP(订货号6ES7314-6CF02-0AB0)与2台SIEMENSMM440变频器进行主从通信,实现搅拌罐的PLC本地控制。
管理层是具有以太网连接的PC机,在这台PC上运行网络服务器(Server)软件,通过以太网与客户端进行通信。
在网络服务器主机的PCI总线插槽上内置CP5611,采用SIEMENS内部的多机接口协议MPI实现与SIEMENS的可编程控制器S7-300连接。
在内置CP5611的网络服务器上分别装有SIEMENS的工控软件平台STEP7(v5.5sp1)和三维力控的组态软件Forecontrol(V6.1sp3)。
在工控软件STEP7平台上实现对SIEMENS的可编程序控制器S7-300及其通过工业现场总线PROFIBUS连接的2台SIEMENSMM440变频器进行系统设置、软件编程和系统调试。
在组态软件ForecontrolV6.1平台上,根据控制系统的工艺流程,完成上位监控软件的设计、编写和调试,并实现上位机的远程控制。
在管理层上,把上位主机作为C/S方式的服务器(Sever),并通过以太网实现客户机(Client)的C/S方式访问。
进一步还可以实现Intenet网上的B/S方式的网络通信和控制。
二、设计内容
(1)被控对象
S7-300(CPU314C)与两台变频器连接,构成搅拌罐控制系统。
它分为本地控制和远程控制。
a)本地控制-在搅拌罐旁边控制柜上通过控制按钮实现控制工艺。
此时”远程控制/本地控制”选择开关I0.0选择“0”,表示控制系统处于”本地控制”状态。
b)远程控制—距离搅拌罐有几百米——几千米,通过与搅拌罐本地控制柜中控制器相联的上位监控计算机监控界面对搅拌罐进行控制。
此时,”远程控制/本地控制”选择开关I0.0选择“1”,表示控制系统处于”远程控制”状态。
系统运行状态显示为Q124.0。
泵A为通过现场总线Profibus-DP实现MM440变频器控制的三相异步电动机,它的状态显示为Q124.1;泵B为通过现场总线Profibus-DP实现MM440变频器控制的三相异步电动机,它的状态显示为Q124.2;搅拌机为三相异步电动机,状态位为Q124.3;排料阀C状态位为Q124.4,是常闭型开关电磁阀。
本地启动按钮为I0.1、本地停止按钮为I0.2,均为不带锁的主令按键。
传感器L(I0.3)、传感器H(I0.4)、传感器A(I0.5)分别为低液位传感器、高液位传感器、报警液位传感器。
(2)本地控制搅拌过程的工艺顺序:
a)按启动后,泵A和泵B同时开,A液体和B液体同时进入罐内。
b)按A液体和B液体进料比例供料(系统默认进料比例为2:
3。
设泵流速为每秒10升/秒,混合液总体积为500升。
泵A完成进料用时T1为20秒;泵B完成进料用时T2为30秒。
)
c)供料完毕后搅拌机工作,搅拌A、B料的混合液体。
搅拌时间T3设置为20秒。
到时后,搅拌机停;
d)排料阀C工作,将搅拌好的液体排除;当液位低于低液位时,延时20秒后,阀C关闭;
e)系统进入下一个循环周期,控制流程转入到”a)泵A和泵B同时开”……
(3)网络控制
将与控制对象直接相联的监控计算机作为服务器,在与其相联的以太网中的其它计算机作为客户端。
在客户端装有三维力控组态平台,用它进行设计、制作、调试组态软件。
操作客户端的组态软件,通过与服务器上的组态软件实现对被控对象的远程网络控制。
3、设计步骤
一、主界面的设与排版
在工具目录/图库中的传感器、泵、阀门、管道、报警灯、仪表、时钟、搅拌器等子目录中选择传感器、泵、电磁阀、管道拐弯、运行状态指示灯、远程控制和本地控制指示灯等等,调整位置、大小和属性,并通过适当的调整,连接成一个整体,如下图所示:
从导航器中选择工具目录/图库/管线,从精灵图库中选空心管线,连接横向管路;再选择空心管线,在空心管线上点击右键,进入”对象动画”对话框,选择空心管线为竖直方向,、。
用文本框,标注文字,在属性中(点击右键)改变字体,字形和颜色;液位高度和搅拌次数的显示部分用工具箱中的”文本”###表示。
图中的远程控制的”启动”和”停止”按钮用工具箱中的”增强型按钮”表示。
二、节点的配置
本机配置:
网络节点:
Server服务器的节点IP为192.168.0.4,本机及客户端地址为192.168.0.19
数据源:
三、数据库的创建
在工程项目中双击”数据库组态”,启动组态程序DbManager,双击单元格出现”请指定区域、点类型”对话框。
数字I/O点设置:
在数字I/O点中分别建立输入变量“远程控制/本地控制”,“本地启动”、”本地停止”,”低液位”、”高液位”、”报警液位”、远程启动的”启动”、远程停止的”停止”;输出变量”A料泵状态”、”B料泵状态”、”排料阀状态”、”搅拌器状态”、”系统运行状态”等组态软件中的变量与网络数据源绑定。
模拟I/O点设置:
在模拟I/O点中加入”罐内液位”,”完成搅拌的罐数”、”配料A比例”、”配料B比例”。
四、元素的动画连接
1、控制灯的设置:
以本地控制指示灯为例子:
在客户端的图形界面上,双击”本地控制指示灯”,在”表达式”中选择变量”control.PV”。
注意,因为是”远程数据库”server,所以要加路径:
”\\server\\control.PV”,并选择其状态变量变化时所对应的颜色。
本地控制:
之后以相同的方式设置“远程控制”,“报警”,“系统状态”指示灯,并且选择相对应的变量。
2、管道及泵的设置:
以泵A和管道A为例子:
双击A泵,出现动画连接对话框,点击
,选择相对应的变量IN_A.PV,
泵A:
管道A:
以相同的步骤分别对“管道B”,“泵B”,“排料管道”,“排料阀”进行设置。
3、液位传感器的设置:
以低液位传感器为例子:
双击低液位传感器,出现动画连接窗口,点击颜色相关动作中的条件,选择“\\sever\\SENSOR_L.PV”变量。
并以此对“高液位”和“报警液位”传感器进行设置:
4、搅拌部分设置:
对搅拌罐和搅拌器进行设置,并可以根据个人喜好调整相应颜色:
搅拌罐:
搅拌器:
5、增强型按钮的设置:
“启动”和“停止”按钮采用工具中基本图元中的增强型按钮。
双击“启动”,在动画连接的”触发动作”栏中选择”左键动作”,在”按下鼠标”栏目下输入脚本程序为:
ON_yuan.PV=1;//远程控制"启动"变量为1
OFF_yuan.PV=0;//远程控制"停止"变量为0
#Text34.Enable
(1);//A料配比窗口数允许
#Text45.Enable
(1);//B料配比窗口数允许
在“鼠标按着周期执行”栏目下输入脚本程序:
\\server\\ON_yuan.PV=1;//远程控制启动变量为1
\\server\\OFF_yuan.PV=0;//远程控制停止变量为0
在动画连接的”杂项”栏目中选择”禁止”->在表达式栏中选择变量”control.PV”,禁止条件为”表达式为真”。
双击“停止”在动画连接的”触发动作”栏中选择”左键动作”,在”按下鼠标”栏目下输入脚本程序为:
ON_yuan.PV=0;//远程控制启动变量为0
OFF_yuan.PV=1;//远程控制停止变量为1
在“鼠标按着周期执行”栏目下输入脚本程序为:
\\server\\ON_yuan.PV=0;//远程控制启动变量为0
\\server\\OFF_yuan.PV=1;//远程控制停止变量为1
在动画连接的”杂项”栏目中选择”禁止”,在表达式栏中选择变量”control.PV”,禁止条件为”表达式为假”
6、对数字输出显示的设置:
一共有六部分的数字输出显示,分别为“A料配比(显示)”,“B料配比(显示)”,“A料配比(设定)”,“B料配比(设定)”,“液位高度”,“搅拌次数”。
采用工具栏中的基本图元中的文本,设置为如右的形式:
然后双击文本,以“A料配比(显示)”为例,出现动画连接框,在数字输入显示中选择数字输出“模拟”选项,并选择相关变量:
然后依次对上述各个输出模块进行设置。
5、主程序
在工程项目中双击”动作”,再双击”应用程序动作”,进入脚本编辑。
首先编辑”进入程序”,是监控开始时所执行的初始化程序。
在“进入程序”栏下输入脚本程序:
ON_yuan.PV=0;
OFF_yuan.PV=0;
control.PV=0;
LEVEL.PV=0;
RUN.PV=0;
TIMES.PV=0;
在“程序运行周期执行”栏下输入脚本程序:
////////////////////////////////////////////模拟罐内液位的变化
IFSENSOR_L.PV==0&&RUN.PV==1&&OUT_VALEV.PV==0&&LEVEL.PV<25THEN
LEVEL.PV=LEVEL.PV+1;
ENDIF
IFSENSOR_L.PV==1&&RUN.PV==1&&OUT_VALEV.PV==0&&LEVEL.PV<80THEN
LEVEL.PV=LEVEL.PV+1;
ENDIF
IFSENSOR_H.PV==1&&RUN.PV==1&&OUT_VALEV.PV==0&&LEVEL.PV<90THEN
LEVEL.PV=LEVEL.PV+1;
ENDIF
IFSENSOR_A.PV==1&&RUN.PV==1&&OUT_VALEV.PV==0&&LEVEL.PV<=100THEN
LEVEL.PV=LEVEL.PV+1;
ENDIF
IFOUT_VALEV.PV==1&&RUN.PV==1&&LEVEL.PV>=25THEN
LEVEL.PV=LEVEL.PV-1;
ENDIF
IFSENSOR_L.PV==0&&RUN.PV==1&&LEVEL.PV>=1&&OUT_VALEV.PV==1THEN
LEVEL.PV=LEVEL.PV-1;
ENDIF
IFRUN.PV==0&&SENSOR_L.PV==0THEN
LEVEL.PV=0;
ENDIF
最后点”击编译并保存”,如出错,修改语法错误。
4、进一步扩展
系统的功能模块图如下:
在主菜单分别新建主菜单,用户管理,用户管理提示,实时趋势曲线,历史报表查询,报警时间记录,系统事件记录。
1、“主菜单”窗口
在开发平台的工程项目栏中新建一个”主菜单”窗口,并从工具/基本图元中选择”增加型按钮”,生成”主监控”、”趋势曲线”、”历史报表”、”报警记录”、”用户管理”及”退出系统”。
(i)先点击”主监控”增强型按钮,弹出”动画连接”窗口,在”触发动作”栏中点击”窗口显示”,“选择窗口”里选择”搅拌罐控制”窗口,”确认”;再选择”杂项”中的”禁止”->在表达式中输入:
$UserLever==-1。
(ii)依次双击“趋势曲线”,“历史报表”,“报警记录”,“用户管理”,选择“窗口显示”,并选择相对应的窗口。
(iii)双击退出系统,选择“左键动作”,在“按下鼠标”栏下输入脚本程序:
CloseAllWindow();//关闭所有窗口
2、用户管理系统
建立用户管理窗口,用文本框标注文本”当前用户”及对应的文本显示”######”,……五个增强型按键”用户登录”、”用户注销”、”修改口令”、”添加/删除用户”、”用户退出”;三个符合框”A区”、”B区”、”C区”。
其中A区对象名称为CHK1,B区对象名称为CHK2,C区对象名称为CHK3。
在工程项目的导航区选择变量文件夹下的中间变量双击,弹出”变量管理”窗口。
在它的导航区中选择中间变量,点击”添加变量”,弹出”变量定义”窗口。
在变量名中输入”userlevel1”;在说明中录入”显示当前用户级别”;类型选择”字符型”;类别为”中间变量”。
建立中间变量显示用户登记状态userlevel2,字符型。
建立中间变量manager,数据类型为实数型。
在”系统配置”栏中的”用户配置”中激活”用户管理”,弹出”用户管理”窗口。
在”用户信息修改”栏中,在级别中先选择”系统管理员”,用户名输入”admin”,口令和核实口令均为”123”,安全区为A、B、C区(对应实时数据库的区域00、01、02),系统权限为”进入组态、进入运行、退出运行”。
然后点击”添加”。
继续添加”工程师1”、”班长1”、”操作工1”。
对各个变量的动画连接:
在”用户管理窗口”,双击增强型按钮”用户登录”,弹出”动画连接”窗口。
选择”左键动作”,在脚本编辑器选择”鼠标按着周期执行”,输入脚本程序:
Login();//登录
双击增强型按钮”用户注销”,弹出”动画连接”窗口。
选择”左键动作”,在脚本编辑器选择”鼠标按着周期执行”,输入脚本程序:
#CHK1.SetCheck(0);//取消实时数据库的区域00的选择#CHK2.SetCheck(0);//取消实时数据库的区域01的选择#CHK3.SetCheck(0);//取消实时数据库的区域02的选择Logout();//退出登录
双击增强型按钮”修改口令”,弹出”动画连接”窗口。
选择”左键动作”,在脚本编辑器选择”鼠标按着周期执行”,输入脚本程序:
UserPass($Username);//键盘输入到用户名字符串$Username中
双击增强型按钮”增加/删除用户”,弹出”动画连接”窗口,选择”窗口显示”,连接”用户管理提示”窗口:
双击增强型按钮”用户退出”,弹出”动画连接”窗口,选择”左键动作”,在脚本编辑器选择”鼠标按着周期执行”输入脚本程序:
CloseWindow();//关闭显示窗口
双击”当前用户”后面的显示文本窗口,弹出”动画连接”窗口,在”数字输出”栏中选择”字符串”,在”字符输出”对话框中点击”变量选择”,在变量选择栏中选”全局变量”,在变量名中选当前用户名称的字符串变量$UserName。
以相同的方法对“当前用户级别”和“用户登录状态”进行设置,其字符串分别为全局变量UserLevel1和全局变量UserLevel2。
在“工程项目”导航器中选择动作栏中的”应用程序动作”在”程序运行周期执行”中添加:
///////////用户级别转换和登陆状态显示////IF$UserLevel==-1THENuserlevel1=“当前无登陆用户”;userlevel2=“未登陆”;ENDIFIF$UserLevel==0THENuserlevel1=“操作工级”;userlevel2=“已登陆”;ENDIFIF$UserLevel==1THENuserlevel1=“班长级”;userlevel2=“已登陆”;ENDIFIF$UserLevel==2THENuserlevel1=“工程师级”;userlevel2=“已登陆”;ENDIFIF$UserLevel==3THENuserlevel1=“系统管理员级”;userlevel2=“已登陆”;ENDIF
3、用户管理提示
点击增强型按钮”确定”,在”动画连接”中选择”左键动作”。
在脚本编辑器中的”按下鼠标”中输入脚本程序:
Manager==1;//逻辑变量Manager赋值为真
closeWindow();//关闭显示窗口
双击”取消”在”动画连接”中选择”左键动作”。
在脚本编辑器中的”按下鼠标”中输入脚本程序:
closeWindow();//关闭显示窗口
4、趋势曲线
在复合组件对话框中选择曲线,分别创建两个窗口,“实时趋势曲线”和“历史趋势曲线”。
创建数据库变量及建立变量的I/O连接
5、事件记录
报警事件记录:
系统事件记录:
5、程序运行
点击运行,然后打开搅拌罐,系统即进入运行状态,如果主机与我们进行连通,此时远程控制的灯呈红色,我们点击启动按钮,就可进入运行。
查询实时趋势曲线:
历史报表查询:
报警事件查询:
6、实验遇到的问题以及解决
1、在连接变量时,无法找到server的变量。
答:
由于本地客户端位于sever主机连接,因此只有本地系统变量,在打开了交换机以后,本地客户端与主机互联,更新了远程数据,才能出现server的变量,此时选择server变量就行。
2、启动按钮动画连接时左键按下鼠标动作脚本程序无法编译。
答:
在编译时,显示无#text97,无Enable函数,经过询问同学和助教,#text后面的数字应该点击A料显示和B料显示的###,然后通过左边显示的属性查看对象名称,重新输入#text34和#text45编译成功。
3、更换本地客户端不能控制。
答:
更换本地客户端之后要及时更改网络节点中server中本机网卡的IP,才能使本地客户端与主机互联,才能实现远程控制。
7、心得体会
这次课程设计是我们计算机网络课程的知识延伸。
此次课设用到了PLC技术,但是PLC编程部分和设计不需要我们进行设计,我们只需通过Forcecontrol力控V6.1软件进行控制就行。
同样,我们从来没有接触过这个软件,但在老师和学长的带领下,通过详细的讲解让我对力控有了初步的了解,此次试验是通过以太网,以C/S方式(客户端/服务器)完成对SIEMENS的可编程序控制器通过工业现场总线PROFIBUS方式与2台SIEMENSMM440变频器控制的三相异步电机的实际工程平台,实现对搅拌罐PLC控制系统(含本地控制和远程控制)的网络控制。
在讲解之后,我们首先要新建一个搅拌器窗口,对元件的挑选和连接最终设计好主界面,然后对各个变量和动画进行连接,之后,我们进行了扩展研究,建立了多个窗口,包括实时、历史趋势曲线,报警历史记录,历史报表查询的等,可以更加完整的监控实时动态和历史动态。
此次课设中我们所做的控制比较简单,并且老师的教学文档和讲解都非常详细,因此我们进行的也比较顺利,虽然过程中也遇到了不少问题,但通过询问同学和学长让问题引刃而解。
力控软件易于掌握并且结合实际,不仅契合我们此次的实验目的,我认为它对于实际问题中其他的控制例如发电厂的控制等一系列实际问题都能有很大的帮助。
在以后的学习当中,我希望能灵活运用所学,用力控软件仿真实际中遇到的问题,不仅锻炼我们的创新思维,也能综合能力使问题得到解决