版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
FILENAME
Exercise_6.3_optional.doc
D
SUBJECT
System800xATraining
PAGE
52
PAGE
51
FILENAME
Exercise_6.3_optional.doc
2/52
CreatingaFaceplatefortheUser_definedFunctionBlock(Optional)
Description
Wearegoingcreateasolutionwithablock,calledmyTank_FB,.Itwillhavethefollowingcharacteristics.
AvariablecalledTankLevel,whichrepresentsthelevelintheTank
AvariableFlowSpeed,whichsetsthespeedoffilling
AvariablecalledOnOffwhichstarts/stopsthefillingoftheTank
AparameterMaxAlarmwhichsetsthelevelforaHHAlarm
AparameterMinAlarmwhichsetsthelevelforaLLAlarm
WewouldliketohavethefollowingaspectsconnectedtothemyTank_FB
GraphicalElementshowingtheTank,thename,thealarmlimitsandtheLevel
AFaceplateforcontroloftheTank
TrendDisplayshowingtheLevel
AhistorylogloggingtheLevel
AnAlarmandEventlistshowingtheTankAlarms
SolutionSteps
ProcessPortalAandControlBuilderisananintegratedDCSSystem.Thismeansthatyouonlyneedtoengineeringtheysystemonce.AllobjectsthatyoucreateintheControlBuilderwillautomaticallyappearinProcessPortalandviceversa.
StartPlantExplorer
StartPlantExplorerandopennavigatetotheControlStucture
OpentheProjectintheControlStructure
ItmaytakeaminuteortwotoopentheProject.
CreateanewofProgram
CreateanewProgramandcallitExerciseandassignaTasktotheit.ProcessPortalgetsconfusedifyouhaveseveralapplicationswiththesamename.Besuretoselectauniquenameforyourapplication.
AttachittoaTaskintheController
CreationofyourLibrary
Thenextstepistocreatealibrary,sowecanre-usethesolutionwecreatetodayinseveralprojects.
CreateaLibrarycalledYourNameDemoLib,forexampledemoLib.
CreationofmyTank_FB
InthelibraryweshouldcreateafunctionblocktypecalledmyTank_FB.
ControlBuilderispartoftheIndustrialIT,whichleadstothatwhatyoucreateintheControlBuilderisalsocreatedinthePlantExplorer.
CreatethefunctionalityoftheTankBlockasdescribedbelow.Wewilllaterincreasethefunctionality.
NotethatyouneedtobeintheControlBuildertomakesthechangesinthecode.EitheryouswitchtotheControlBuilderusingtheTabsoryoucanrightmouseclickonyouFunctionBlockinPlantExplorerandselectFunctionBlockEditor.
CodeandParameters
Variables
CreationofGraphicElementonmyTank_FB
ThenextstepistocreateaGraphicElementonthemyTank_FBtypeinProcessPortal.WewanttocreateaGraphicElementthatshowsthevalueofLevelinaNumericDisplayandinaBarGraphandshowthenameofthefunctionblock.
LocatethemyTank_FBintheObjectTypeStructureandselectNewAspect.
CreateanewGraphicElementPG2andcallitGraphicElement.Edittheelement.
Createthestaticpartasfollows
Iusedthefollowingelements
Forthetanktop,bottomandbody
FortheName
FortheBarGraph
FortheNumericLevel
Itistimetoconnecttheelementstotheprocess.WhatwearegoingtouseittheExpressionBuilder.BydoingthisisinObjectTypeStructureweassignthevariablesrelativelytotheTankObjectType.Thismeansthattheassignmentswillworkforanytankthatwecreate,i.e.wedonotneedtoassigntheNameandtheLeveltoeachTank.Itisdoneautomatically.
SelecttheNumericandjumptothepropertieswindow.SettheparameterNo1~5aswellastheblowgraphic.AdjusttheNo.6parametertoapropervalue.
FortheNo.7parameter,jumptotheExpressionEditorfromselectingradiobuttonswithinthePropertiesWindowtoadddynamicvalue:TankLevel.
ContinuetoaddtheLeveltotheinputoftheBarGraph.
ConnecttheTextElement’sTextpropertytotheNameoftheFunctionBlock.
Savethegraphicandtestthebehavior.Testing,whileintheGraphicEditor,canbedoneby“View>TestData”.
TakealookintheObjectTypeStructureonthegraphicelement.
Creationoftheyourfirstprogram
LetscreateasmallapplicationconsistingoftwoinstancesofthemyTank_FBandtestthefunctionality.WewillusetheFunctionBlockEditortowriteourapplicationinProgram2
ConnectLibraries
ThefirststepweneedtodoistoConnectthemyUserLibtoourApplication.GotheControlStructureandselectyourapplication.PressConnectLibraries
SelectmyUserLibandpressOK
CreatetheProgram
GotoExcise_No2anddeclareaFunctionBlockcalledmyTank1andassignFS1(FlowSpeed1)totheinputandsetitto5.RepeattheprocedureforanotherTankcalledmyTank2andusetheinputFS2(FlowSpeed2)andsetitto10.
Thesolutionisbelow
VariablesandCode
FunctionBlocks
AssoonasyoupressApplyintheEditorWindowyouwillgettheFunctionBlocksintheControlStructureofProcessPortal.ThisiswhatwecallIntegratedEngineering.
TakealookintheControlStructureandyouwillseebothTanks.
Wewouldliketoseeifourprogramsworks.GotoSimulatemodeandtestyourprogram.
BelowistheExcise_No2insimulationmode
Youcanseethevalueoftheparameters,butifyouwanttoseethevariables,forexamplethelevelyouneedtogodownonelevel.Youcandothatmyrightmouseclickingonthefunctionblockandselect“OnlineEditor”
BydoingthatyougetaviewofthecodeinsidetheFunctionBlock.
Inthismodeyouwillseeallvariablesinsidethefunctionblock.
Godownloadandgoon-line
Nowwhenyouknowyourelementisworking,itistimetodownloadandgo-online.RemembertosetyouSystemIdentityforyouSoftControllertoyourIPaddress(127.0.0.1:2fortheSoftController)
Checkthatyouhavelivedata
YoucancheckthatyouhavelivedatabylookingattheFunctionBlockaspectsintheControlStructure.
LocatetheExercise,Program1,selecttheFunctionBlockandthetabPropertyViewandselect“Subscribeforlivedata”
Ifyougetvaluesinthetableyouknowthatyouhavelivedata.
Ifyoudonotgetlivedata,makesurethatyouhavestartedtheOPCServerandthatyouhaveselectedyourPCastheprovider.
CreationofthefaceplateformyTank_FB
Nowwewanttocreateafaceplate,tocontrolourLevelinthemyTank_FB.
FirstofallweneedtoaddthecodethatmakesispossibletostoptheTankLevelintheTank.
GobacktotheControlBuilderandeditthemyTank_FBbyaddinganOnOffvariableanduseitasbelow.
CreatetheFaceplate
TheFaceplateisthemainaspectforthefaceplate.LocatethemyTank_FBintheObjectTypeStructureandcreateaFaceplatePG2aspectnamedFaceplate.
Takealookatthefaceplate.Atthismomentitisjustempty.Wewouldliketofillitwithsomeinformationandsomeactionsbuttons.
ThefirststepistoselecttheConfigviewandcreatetwobuttonsOnandOfftosetthevalueoftherunningvariable.SwitchtoConfigViewandselecttheButtonstab.
ClickIcon/Labelstospecifywhaticonortextyouwanttohaveonthebutton.
Thenextstepistoselectwhatpropertywewanttoset.ThisbuttonshouldsettheOnOff.
Thethirdstepistosetwhatpropertyvalueweshouldwritetothecontrollerwhenwepushthebutton.WewouldliketowriteTruetotheOnOffwhenwepushtheOpenButton.
Youcanalsosupplyatooltip.Thelastthingyouneedtodoistoselectinwhatpositionsthebuttonshouldappear.Thepositionsarenumberedfromlefttoright.
RepeattheprocedurefortheCloseButtons.CallitC.ThelastthingyouneedtodoistosetthepositionoftheButtonintheFaceplate.
GobacktotheFaceplateViewandtakealookatyourFaceplate.
GobacktotheControlStructureandselecttheOverviewGraphicsonExcise_No2.RightmouseclickonTank1andselecttheFaceplate.TrytoOpenandClosetheTank.Tank2hasthesamefunctionalitysincewebuilttheFaceplateontheType.
ItwouldbeniceifanoperatorcouldopentheFaceplatebyjustclickingontheObject.Itisquiteeasytoconfigurethatbehavior.GobacktotheObjectTypeStructureandselecttheFaceplateAspect.RightmouseclickandselectProperties.
SelectDefaultAspectintheAspectDetailsTab.
GobacktotheOverviewGraphicsandclickontheTanktobringupthefaceplate.
CreationofaFaceplateElement
Wewanttohaveafaceplateelementinthemiddleofthefaceplatethatshowabargraphwiththelevel.Wealsowanttobeabletosetthelevelmanually.
Inordertodothat,weneedtocreateafaceplateelementonthemyTank_FB.AFaceplateElementisanelementthatcanacceptinputtothecontroller.
Editthefaceplateelement.WewanttobeabletoclickandsetthelevelandturntheLevelonandoff.
WearegoingtousetheToggleButtonandtheBar
TietheLeveltotheBarvalueinthePropertiesWindow.
AttachtheTogglebuttontotheOnOffsignal
SavetheFaceplateElement
Youneedtooutthisfaceplateelementintothefaceplate.GototheObjectTypeStructureandselectConfigViewontheFaceplateandselecttoincludetheFaceplateElementintheElementstab.
ClickApply
OpenyourOverviewGraphicsandselecttheFaceplate.ItshallnowhaveaniceFaceplateElementintheFaceplate.YoucansetthelevelandtoggleOnOffwiththeToggleButton.
Addanindicator
WewouldliketohaveanIndicatorshowingthestatusoftherunningvariable.
SelecttheConfigViewontheFaceplateintheObjectTypestructure.
ClickintheIcons/LabelsWindowandsupplythewhatshallbeshownastheindicator
Weneedtodecidewhenwhaticonshouldbeshown.ClickintheExpressionWindowtosupplyanExpression
Iif($'.:OnOff',0,1)
Thisexpressionmeans:Showlabelnumber0ifOnOffisTRUEotherwiseshowlabelnumber1.
SelectthepositiontoshowtheIndicator
OpenyourOverviewGraphicsandselecttheFaceplate.ItshallnowhaveaniceFaceplateElementintheFaceplate.YoucansetthelevelandtoggleOnOffwiththeToggleButton.
CreationofanOverviewDisplay
WewouldliketohaveanOverviewDisplaysthatholdsbothofourTanks.GototheFunctionStructureandcreateanewGraphicDisplayPG2.
RightmouseclicktoEdit.
Wewould,ofcourse,liketore-useinsteadofcreatinganewTankElement.
Agraphicelementmaybeusedinanygraphicdisplay.Toaddanelementtothedisplay,selecttheElementBrowsericonfromthetoolbar:
Allofthedynamiclinkingtotheprocessdataisalreadydone.Thisisthepowerofusinggraphicelements.ThereforewearegoingtousetheElementExplorertoselecttheGraphicElementsonourTanks.
SelectmyTank1andMytank2intheControlStructure,allreusablegraphicelementsarelisted.ThistimemyTank1ownagraphicelementnamedgraphicelementonly.
Selectandaddthegraphicelementinthedisplaybyseveralmethods:
-selecttheelementandclickontheeditpanel
-double-clicktheselectedgraphicelement
-draganddroptheelementontotheeditpanel
-selectthegraphicelementandpress“Enter”.
ArrangethemandinsertatextasaHeadline.
TherearetwomodeswhichcanbeselectedintheGraphicsBuilder:
• EditMode
Thisisthedefaultmodeandallowstheusertobuildthegraphicaspectwithoutanyinteractiveconnectiontodynamicdata.
• LiveMode
Thisallowstheusertoviewthebehaviorofgraphicaspectswithdynamicvalues.
PleaseuseLivemodetoseeresultbelow.
AsyouseeyoucanhavelivedataintheGraphicsBuilder.
SavetheGraphics.
IfyoudonotseethelivedatapleasemakesureyouhaveselectedtheLiveDataoption
AddaTrendDisplayformyTank_FB
Wewouldliketohavearun-timetrendshowingtheLeveloftheTank.GototheObjectTypeStructureandselectthemyTank_FBandcreateaTrendDisplay.
WecreateTrendDisplayonthetype.Inordertogetarelativepath,typein“.”(youtypeinadotandthedotwillbereplacebythetypename)fortheObject.SelecttheFunctionBlockastheAspectandtheTankLevelastheproperty.
Alsosetthehighrangeto100.00
Savethetrend.
OpenyourOverviewGraphicsandselecttheTrendDisplay.
Changethetimerangetoaminute.
ConfigurehistorytologtheTankLevels
WewouldliketohistorizetheTankLevel.
GototheControlStructureandcreateaLogConfigurationAspectonTank1.
TheLogConfigurationAspectletsyoudefinewhatpropertytologandwhattemplatetouse.Thetemplatedefineshowtolog,e.g.howoftenandhowlargeofastorageeachtaghas.
ClickontheTankLeveltologit.
SelecttheTemplateyouwouldliketouse
PressOKandApply.
NowyouTankLevelforTank1isbeingHistorized.
RepeattheProcedureforTank2anditsTankLevel.
AddanAspectLinktotheTrendontheFaceplate
WewanttohaveanAspectLinkonthefaceplatetotheTrendDisplay.GobacktotheObjectTypeStructureandselectConfigViewontheFaceplateandtheIndicatorsTab.
SelecttheViewyouwantthebuttontoopen.
SelecttousetheAspectIconastheIcon/Label
Selectthepositiontobenumber6foralldifferentsizesofthefaceplate.
OpenyourOverviewGraphicsandselecttheFaceplate
AddingAlarmingtothemyTank_FB
ConfiguretheAlarmHandlingforthemyTank_FB
InordertogettheAlarmingfunctionalityintheControlleryouneedtoinserttheAlarmEventLibintotheproject
ConnecttheAlarm&EventLibtotheApplication.
ConnecttheAlarm&EventLibtomyUserLib.
WewilladdthealarmingtoourmyTank_FBtype,whichmeansthatallourinstanceswillgettheAlarmfeatures.
AddtwoFunctioBlocksoftheAlarmCondtype,calledHIHIandLOLO,tothemyTank_FB.
WewouldliketobeabletochangetheHIHILimitandtheLOLOLimitfromtheuserinterface.InordertogetthecorrectNamedisplayedintheAlarmandEventList,weneedtoaddaNameparameterandassignintheprogram.
Declarevariablesandwritethecodeasbelow
Parameters
SinceweaddedsomeParametersweneededtoupdatetheControlLogic.
DownloadthecodetotheController
SetupAC800M/COPCServertocollectAlarms
IfyouhavenotconfiguredtheOPCServertocollectAlarmsfromyourcontroller,pleasefollowthestepsbelow.(Youneedtodothiseverytimeyoure-startyoursystemoryouneedtoconfiguretheOPCServertoAutoLoadtheconfiguration)
OpentheOPCPanelfromtheStartMenu
TypeintheIP-addressofyourcontrollerandpressConnect
YourOPCServerisnowconnectedtoyourController
ConnectProcessPortaltotheOPCServer
IfyouhavenotconnectedtheOPCServertoProcessPortalA,pleasefollowthestepsbelow.Youonlyneedtodothisonce
OpenPlantExplorerandtheServiceStructureandlocateEventcollectorandnewaservicegroupobjectnamedAC800MOPCAECollector.
AddaserviceProvideobjectnamedAC800MOPCAEProviderinthisgroup.
.
ClickAddandselecttheOPCAEServerforAC800M.ClickApplyintheServiceGroupDefinitionAspect.
YouhavenowsetuptheAlarmCollectioninProcessPortal
ChecktheAlarming
OpenyourOverviewGraphicsandselecttheAlarmListforTank1.Note:TheAlarmListwascreatedautomaticallyonthemyTank_FBanditisconfiguredtoshowalarmsonlyfortheselectedobject.
YoucanalsochecktheAlarmsforTank2byrightmouseclickingontheTank2andselectingtheAlarm&EventList.
CreateanAlarm&EventListforanArea
WewouldliketohaveanAlarmListforthatshowsallalarmsfromTank1andTank2.
GotoExcise_No2andcreateanAlarm&Eventlist
ThisAlarm&EventListshouldshowtheAlarmscomingfromExcise_No2andbelow,i.e.myTank1andmyTank2.
SelecttheConfigViewontheAlarm&Event
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 共享服务合同的创新发展趋势展望
- 江苏省江阴市璜土中学高中地理 4.1区域农业发展-以我国东北地区为例教案2 新人教版必修3
- 2024-2025学年高中语文 第四单元 有无相生教案6 新人教版选修《先秦诸子选读》
- 九年级化学下册 第12单元 化学与生活教案 (新版)新人教版
- 2024-2025学年高中历史下学期第13周 罗斯福新政教学设计
- 2024六年级语文下册 第六单元 古诗词诵读 5 江上渔者教学设计+教案+素材 新人教版
- 2024-2025学年上海市浦东新区七年级上英语期中试卷(含答案和音频)
- 雨花石音乐课件
- 发现规律 课件
- 剖宫产手术课件
- 粒子物理基础
- 珠宝首饰制作倒模工艺流程
- 2023年象山县特殊教育岗位教师招聘考试笔试题库及答案解析
- YY/T 1760-2021一次性使用腹膜透析引流器
- GB/T 41365-2022中药材种子(种苗)白术
- GB/T 34570.1-2017电动工具用可充电电池包和充电器的安全第1部分:电池包的安全
- GB/T 12527-2008额定电压1 kV及以下架空绝缘电缆
- 一级建造师考试题库及答案(全国通用)
- 公司社会责任管理制度
- 思想政治工作和文化工作理论1
- 2022届北京市东城区高三语文一模语文试卷讲评课件
评论
0/150
提交评论