(整理)如何创建和参数化UDT数据类型中的变量及IN,OUT,INOUT参数_第1页
(整理)如何创建和参数化UDT数据类型中的变量及IN,OUT,INOUT参数_第2页
(整理)如何创建和参数化UDT数据类型中的变量及IN,OUT,INOUT参数_第3页
(整理)如何创建和参数化UDT数据类型中的变量及IN,OUT,INOUT参数_第4页
(整理)如何创建和参数化UDT数据类型中的变量及IN,OUT,INOUT参数_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

精品文档精品文档如何创建和参数化UDT数据类型中的变量及IN,OUT,IN_OUT参数?说明:从数据类型的意义上说UDT并不被CPU所识别,而是在离线程序中自定义(组合)的数据类型。S7程序的自定义数据类型并不能装载到S7CPU中。UDT是由递增的编辑器创建并编辑或由源文件的编译而生成。当在块调用中进行变量传递时是不能将UDT作为内存地址区域来传递的。因此推荐将传递的变量指定为字节数据类型并与其数据长度相一致,或者使用UDT的符号名来定义IN,OUT和IN_OUT参数,因为系统将自动生成相对应的地址。下表介绍了如何创建和参数化UDT类型变量的过程。我们将以两组各十台相同的电机为例。UDT1对应这些电机的所有输入变量。序号步骤1在STEP7项目中插入自定义数据类型。如图01鼠标选中“block”文件夹并点击右键,再弹出菜单中选择命令InsertNewObject>DataType。--2图01□_DFileEditInsertPLCViewOptionsWindowHelp丽|謁勢|為|噩||鈕可电-爲UDT_ProjektSymbolicnameGreatHalleMotorenVariableTableGSIMATICManager-UDT_Projekt瓏UDT_Projekt-尸:岳止MENSVSTEP7\s7proj\UDT_ProjBausteine|DataTypeCtrl+XCtrl+CCtrl+VSTLSTLDBSTLCutCopyPaste在"Properties-DataType"对话框中输入UDT1的符号名(这里以"Motor"为例)后点击OK确认。SIMATIC300(1)UCPU315-2DP-2ZJS7-Programm(1)_DJQuellenA蛊pIHE<NoFilter>Objectname蠡SystemdatenO-0B1O-FC1O-DB1尸JI」□T■!DeleteDelInsertNewObject"IPLC►Rewire...CompareBlocks...RefereneeData►匚heckBlock匚onsistency,..Print►RenameF2ObjectProperties...Alt+ReturnSpecialObjectProperties►OrganizationBlockFunctionEib匚kFunctionDataBlockOKHeIpEl-JIjSTRUCT图02•|x|個|沁ITl^lbnF^operties-DataType3打开UDT1并输入相关数据类型的变量及其初始值。图03为UDT1变量声明的例子。□灯|c|斜|少|冋先阂》!I哩STRUCTBOOLFALSEBOOLFALSEBOOLFALSEBOOLFALSEBOOLFALSEBOOLFALSETiJOPI:-W#16#0=4.0hJs]■AddressNameInitialvalue+CL0Einschalten+D.丄Stcp+0Ereiiisen+0.3P.echtslauf+0.4Liiiks1auf+0.5Notaus+£・0TemperaturProjectPath:DAProgramFiles\Siemens\Step7\s7proi\P_UDTInterface01/22/200709:54:34AMComment:CancelStoragelocationofproject:Datecreated:Lastmodified:P_UDT\SIMATIC300(1]\CPU315-2DP\S7-Programm(1)\Bausteine\UDT1Code01/22/200709:51:41AM01/22/200709:54:34AM口FileEditInsertPLCDebugViewOptionsWindowHelpLAD/STL/FBD-[UDT1-"Motor"UDT_Projekt\SIMATIC300(1)\CPU315-2DP\...Name:UDT1Symbolic忖ame:MotorSymbolComment:「General-Part1General-Part2CallsAttributes图03然后通过菜单命令“Insert>S7Block>DataBlock”在STEP7项目中添加一个数据块DB1,并在“Properties-DataBlock”属性对话框中为其定义符号名(例如此例为“Halle_Motoren”(Hall-Motors))。点击OK确认。图04打开DB1将变量数据类型定义为UDT1(符号名“Motor”)。例如图055所示:两个数组(ARRAY)变量,每组包括10个以UDT1为数据类型的变量(编号1到10)。

4.04.0图05LAD/STL/FBD-[DB1--”HBllo_MotorEn”-UDT_ProjektVSIMATIC300(1)\CPU31QFileEditInsertPLCDebugViewOptionsWindowHelp选择菜单命令“View>DataView”可显示所有DB1数据。由于此例两组电机是独立的,所以在DB1中要为每一组电机创建数据结构。例如第一组的数据结构定义为数据类型为UDT14.04.0图05LAD/STL/FBD-[DB1--”HBllo_MotorEn”-UDT_ProjektVSIMATIC300(1)\CPU31QFileEditInsertPLCDebugViewOptionsWindowHelp选择菜单命令“View>DataView”可显示所有DB1数据。由于此例两组电机是独立的,所以在DB1中要为每一组电机创建数据结构。例如第一组的数据结构定义为数据类型为UDT1的数组“Array[1..10]”,符号名为“Halle丄Motor”。cSTRUCTAP.PAY[1__10]"Motor=80.0EI-JIjSTP.UCTAddressName+CL0Halle_l_H.=.tcrAP.PAY[1__10]+40.0Type6QFileEditInsertPLCDebugViewOptionsWindowHelp□|a|詁旧|冒|為淹|直|十|斜i釧目务|釧遂|汕回NameTypeAddressHallelHotor[1].StopHalle1Hotor[1].EremsenHalle1Hotor[1].P.echtslaufHalle1Hotor[1].Link31aufHalle1Hotor[1].NotausHal1elHotcr[1].TeiiiperaturHallelHotor[Z].StopHalle1Hotor[Z].EremsenHal1e1Hotcir[Z].P.echtslaufHalle1Hotor[2].Link31aufHalle1Hotor[Z].NotausHal1elHot«jr[2].TeiiiperaturHallelHot.or[3].St-opHalle1Hotor[3].EremsenHalle1Hotor[3].P.echts1aufHalle1Hotor[3].Links1aufHalle1Hot«jr[3].NetausHalle1Hotor[1].Einscha丄七enHalle1Hot«jr[2].Einschai七enHalle1Hotor[3].EinschaitenEOOLEOOLEOOLEOOLEOOLEOOLWOPPEOOLEOOLEOOLEOOLEOOLEOOLUOPI:'EOOLEOOLEOOLEOOLEOOLEOOLFALSEFALSEFALSEFALSEFALSEFALSEWlbttOFALSEFALSEFALSEQFileEditInsertPLCDebugViewOptionsWindowHelp□|a|詁旧|冒|為淹|直|十|斜i釧目务|釧遂|汕回NameTypeAddressHallelHotor[1].StopHalle1Hotor[1].EremsenHalle1Hotor[1].P.echtslaufHalle1Hotor[1].Link31aufHalle1Hotor[1].NotausHal1elHotcr[1].TeiiiperaturHallelHotor[Z].StopHalle1Hotor[Z].EremsenHal1e1Hotcir[Z].P.echtslaufHalle1Hotor[2].Link31aufHalle1Hotor[Z].NotausHal1elHot«jr[2].TeiiiperaturHallelHot.or[3].St-opHalle1Hotor[3].EremsenHalle1Hotor[3].P.echts1aufHalle1Hotor[3].Links1aufHalle1Hot«jr[3].NetausHalle1Hotor[1].Einscha丄七enHalle1Hot«jr[2].Einschai七enHalle1Hotor[3].EinschaitenEOOLEOOLEOOLEOOLEOOLEOOLWOPPEOOLEOOLEOOLEOOLEOOLEOOLUOPI:'EOOLEOOLEOOLEOOLEOOLEOOLFALSEFALSEFALSEFALSEFALSEFALSEWlbttOFALSEFALSEFALSEFALSEFALSEFALSEWlbttOFALSEFALSEFALSEFALSEFALSEFALSEFALSE^HFALSEFALSEFALSEFALSEFALSEFALSEFALSEFALSEFALSEFALSEFALSEW16#0FALSEFALSEFALSEFALSEFALSEFALSEInitialvaliActualv图06注意事项:在数据块中变量定义为UDT情况下只能对实际值进行编辑。即可以在数据块的数据视图中输入变量的当前值。初始值“InitialValue”纵栏显示的是在定义UDT变量时所设的初值。只是在DB块第一次存储时将初值作为当前值。为FC或FB定义UDT1类型的IN参数创建FB或FC时,可以定义UDT1(Motor)类型的IN参数,如图07所示。例如,与操作语句:“UOn)例如,与操作语句:“UOn)#Eingabe.Einschalten"(A#Input.SwitchEingabe:FC1的IN参数变量•Einschalten:UDT1中的一个变量名^^LAD/STUEBD-[FCV-P_UDnSIMAfjp300(13^-2DljjOFileEditInsertPLCDebugViewOptionsWindowHelp•X侮•引営|咕|□H:S]]|釧冋务知CantentsOf:1EnviroiiiLLent\InterfsInterfaceNameDataTjqpeCojTwnentEingaLieHot-or~gahe••••旦-t=]-t=]-taOUT<"「匸【FCl:Title:FetiTOrkJNotausTeiiiperatu]Jl>:Title:UTIMUNUUN#Eingal:ie.Einschalt-enftEingahim.EUTIMUNUUNftEiiiga}:ie-TeiiiperaturIRiT40图07UDT数据类型同样适用于OUT和IN_OUT参数,方法同上。数据块DB1的寻址及编程图08所示为变量定义为UDT1类型数据结构的DB1的编程例子。例如与操作:U“Halle_Motoren”Halle_l_Motor[2].Einschalten(“UHall_Motors.Hall_1_Motor[2].SwitchOn)Halle_Motoren:DB1的符号名Halle_l_Motor[2]:DB块数组2的变量Einschalten:UDT1中的一个变量名fet^iork:J:TitleU"Halle_Hotoren".Halls1_Motor[£].EinschaltenDE丄.DBX4-TJN"HalleHotorph.".Halle1Motor[£].StopDB1-DBX4.UN"HalleHotoren".Halle1Motor[Z].E:remssnDE丄.DBX4-U"HalleHotoren".Halle1Motor[£].P.echtslaufDE丄.DBX4-UN"HalleHotorph.".Halle1Motor[2].LiiikslaufDB1.DBX4-UN"HalleHotoren".Halle1Motor[£].NotausDE:丄.DBX4-=H1CL£L"Halle_Hotoren".Halle1_Motor[Z].TeiiiperaturDE:丄.DBW6TMW50FCZ:Title:o1Z345图089在FC或FB中参数化IN参数当调用FC1时,UDT类型的输入变量必须赋值,例如可以用如下语句将第一组电机地址指针赋给输入参数。“Halle_Motoren".Halle_l_Motor[l](“Hall_Motors".Hall—l—Motor[l])LAD/STLZEBD£001_-PJJDTkSIMA'QC300(1)«:?11-31DP]口FileEditInsertF'LCDebugViewOptionsWindowHelp•H漁|銅13|垢]|□3詁创匐黑淹1*B|也c刚釧河先|卅|!纟ContentsOf:1Envirotiiiient.\Interfat-辽£InterfaceName+瘙TEHPTEHP0E1:"HainPrograniSweep(Cycle)fet-iiorkCALLFC1EingmljE!:=丄丄□匸口芝总吐”.Ha丄丄□匸口]:[丄]PltDEl_DEXO.U图09这种参数化过程同样适用于定义为UDT类型的OUT和IN—OUT参数的其它变量。在交叉参考表中可以显示S7用户程序所用地址及应用(例如DB1)的列表。

I雷S7-Programm(1)(Cross-references)--UDT_TestASIMAJ^aOOtl)\CP|J314C-2PtP13:ISAddress(symbol)BlockTypLanquagLocationDB1.DBBO(HalleMotoren.HallelMotor)OBIR5TLNW1Sta1AALLDB1.DBXO.0(HalleMotoren.HallelMotor[l].Einschalten)FC1R.5TLNW1Sta9/LDB1.DBXO.1(HalleMotoren.HallelMotor[l].Stop)FC1R5TLNW1Sta10/LNDB1.DBXO.2(HalleMotoren.Hallel

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论