




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 【正版授权】 ISO 4301-5:2025 EN Cranes - Classification - Part 5: Bridge and gantry cranes
- 2025年度玉石雕刻设计与销售服务合同
- 2024年12月份新能源汽车行业月报
- 2025年绿色建筑节能改造工程房地产联合开发协议书
- 探索班级中的责任与担当计划
- 加强保安服务宣传的重要性计划
- 生物教育游戏化学习实践计划
- 秋季学期公益项目与社会服务计划
- 会计人员年度工作总结与展望计划
- 心灵启迪幼儿园教学工作计划文档
- 2024年实验小学大队委竞选笔试试题题库
- 学校办公室卫生制度
- 医学生理学智慧树知到答案2024年德州学院
- GB/T 44412-2024船舶与海上技术液化天然气燃料船舶加注规范
- 小学三年级数学上册口算题卡(加换算)
- 小学数学二年级《数图形》练习题
- 机械制造HSE协议书
- 2024-2030年中国静脉血栓栓塞症(VTE)防治行业市场全景监测及投资策略研究报告
- 财务审计服务投标方案(技术方案)
- RBA商业道德程序文件(系列)
- 2024年国家保密法知识竞赛经典题库及完整答案【必刷】
评论
0/150
提交评论