lizzychen系列twincat2.0第3.2版-四3學(xué)習(xí)筆記_第1頁
lizzychen系列twincat2.0第3.2版-四3學(xué)習(xí)筆記_第2頁
lizzychen系列twincat2.0第3.2版-四3學(xué)習(xí)筆記_第3頁
lizzychen系列twincat2.0第3.2版-四3學(xué)習(xí)筆記_第4頁
lizzychen系列twincat2.0第3.2版-四3學(xué)習(xí)筆記_第5頁
已閱讀5頁,還剩258頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

(四)TwinCAT3Version 概 在編程PC上安裝TwinCAT開發(fā)環(huán) 開發(fā)第一個PLC項 兼容TC2的功 程序加密及OEM................................................................................................... 概 功 PlaceHolder的用 C++編 集成客戶C/C++代碼時的常見問 概 TC3的新功 技 理 的機(jī) 從外部Module .cn:21/97/4TwinCAT3學(xué)習(xí)筆記 節(jié)選自《TwinCAT3.1學(xué)習(xí)筆記_V1.10_ 系統(tǒng)概它的作用是把工業(yè)PC或者嵌入式PC變成一個功能強(qiáng)大的PLC及運動控制器(MotionControllerTwinCAT1995年首次推出市場,現(xiàn)在有兩種版本并存:TwinCAT2和TwinCAT3,以下簡稱TC2和TC3。TC290CPU32位操作系統(tǒng)能力。TC3201064CPU,并且可以集成C++編程和建模TC3的運行核既可以工作32位操作系統(tǒng),也可以工作64CPU的運算能力。對于PLC控制和運動控制項目,TC3和TC2除了開發(fā)界面有所不同之外,編程、調(diào)試、通訊的原理和操作方法都幾乎完全相同。PC的CPU資源,完成實時的邏輯運算和運動控制。TwinCATBeckhoff的IPCEPCWindows1臺計算多核CPU上的TC3,還可以集成機(jī)器人等更復(fù)雜的功能。相對于傳統(tǒng)的控制器,TwinCAT控制器最大的特點是軟件與硬件分離,不僅與控制器IO設(shè)備分離。同樣的程序可以運行在不同的控制器上,也可以用來控制完TwinCATPLC的特點:在使用上,TwinCATPLC兼容傳統(tǒng)PLC的慣例,比如支持梯形IL(LD(BD(ST(CFC與傳統(tǒng)的PLC相比,基于PCTwinCATPLCCPU、內(nèi)存和存儲器容量都有了數(shù)量級的提升。運算速度快,尤其是傳統(tǒng)PLC不擅長的浮點運算,比如多路溫控、控制以及其它復(fù)雜算法時,TwinCATPLC可以輕松勝任。數(shù)據(jù)區(qū)和程序區(qū)僅受限于控制器硬盤或者卡的容量。隨著IT技術(shù)的發(fā)展,用戶可以訂購的介質(zhì)CF卡、CfastCPU的速度越來越快,而性價比越來越高。因此TwinCATPLC在需要處理和大量數(shù)據(jù)比如趨勢、配方和文件時優(yōu)勢明顯。重要的是,TwinCAT軟件與硬件分離,同樣的程序可以運行在不同性能的控制器上。供PC控制平臺的完整產(chǎn)品線,CPU從ARM9400MHz到In ?Core?i72,1GHz4核,多達(dá)10幾個性能等級。TwinCATPLCIEC61131中定義的標(biāo)準(zhǔn)的運動控制FB,與所有支持該標(biāo)準(zhǔn)的運動控制器廠商的指令集兼容。PLC實際上工作于同一臺PC,二者之間的通訊只是兩個內(nèi)存區(qū)之間修改任意接口類型,而運動控制的PLC程序保持不變。PC,其控制原理、軟件操作都一模一樣,同一套程序可以移值到任何一臺PC-Based控制器上運行。TwinCAT3Runtime用戶訂購BeckhoffTC2還是TC3的運行核,軟件為出廠預(yù)裝,用戶不能自行更改。TC3TC3開發(fā)版編程。截至(2016.10.07之外,其余產(chǎn)品都可以選擇安裝TC3運行核。WindowsXP、WindowsXpe、WindowsNT、Windows7、WES7WindowsCE系統(tǒng)小巧輕便,經(jīng)濟(jì)實惠,相對于傳統(tǒng)PLC而言,功能上仍然有優(yōu)勢,所以在工業(yè)自動化市場上,尤其是國內(nèi)市場,WindowCE顯然更受歡迎。TwinCAT3功能介NC和其它任務(wù)的的運行平臺。TC3分為開發(fā)版(XAE)和運行版(XAR。XAE安裝運行VS2010或者VS2013S開發(fā)版為Beckhoff廠家免費提供。XAR運行在控制器上,必須要,在并激活授之前,必須每5天激活一次試用才能連續(xù)使用。在運行內(nèi)核上,TC3首次提出了Module的概念。Module創(chuàng)建Object有相同的運算代碼和接口。概念的引入,使TwinCAT具有了無限的擴(kuò)展性,Beckhoff公司和第廠家都可以把自己的軟件產(chǎn)品封裝成集成到TwinCAT中。目前已經(jīng)發(fā)布的包括:PLCNCTwinCAT2兼容的兩種基本類別的SafetyCNC:這也是TC2中已經(jīng)有的軟件功能,在這里以C和CModule:TC3C和C++編輯Real-time的控制代碼Module:TC3新增的功能,允許用戶事先在中創(chuàng)建控制模型(模型包 ,用戶可以創(chuàng)建多個Module。每個Module必須有自己的狀態(tài)機(jī)和數(shù)、ADSModule可以包含簡單的功能也可以包含復(fù)雜制由一個CPU完成,通訊量大大減少。BeckhoffIPC36核CPU,36TwinCAT2控制器。在項目開發(fā)階段,用戶只要編寫一個Project,而36Project還要考慮它們之間的通訊。在項目調(diào)試階段,所有數(shù)據(jù)都存放在一個2020年,CPU128核,TwinCAT3將能勝任境集成在VisualStudioTwinCAT2時代分別由PLCControl、SystemManagerScopeView3種軟件實現(xiàn)的編程、配置、電子示波器功能,現(xiàn)在都可以集中在一個軟件中實現(xiàn)。除了增加C/C++和?/?的支持外,在PLCTwinCAT的實時性通過TwinCAT實時核來保證。我暫時以不嚴(yán)謹(jǐn)?shù)菀桌斫獾姆绞絹鞹winCAT運算;二是在劃出的CPU中按照不同任務(wù)的優(yōu)先級和設(shè)置的執(zhí)行周期,決定不同3應(yīng)用來說,某些文字可能并不嚴(yán)謹(jǐn)。讀者可以姑且聽著。Object需要由Task為調(diào)用Task需要指定CycleTime和它運行CPUCPU核需要指定BaseTime和CPULimitModule中定義了一段內(nèi)存和內(nèi)存中各個變量之間的關(guān)系。當(dāng)然這塊內(nèi)存里面,有的是結(jié)構(gòu)。內(nèi)存中各個變量之間遵循Module代碼所描述的關(guān)系。C++Module和Module,可以在同一個項目中基于同一個Module創(chuàng)建多個對象Object。PLCNC是兩個特殊的Module,同樣代碼的PLC程序只能實例化一次,同樣配置的NC也只能實例化為一次。并且這兩種Module是自動實例化的,而開發(fā)人員幾乎看不出Module這種形式,這是由于TwinCATXAE提供了PLC編程模版。對于C++和對象來說,需要手動指定Task。CycleTimeCPU核的BaseTime的整數(shù)倍。可以將多個Object指定給同一個Task。同樣CycleTimeTask盡量合并成一個,以節(jié)約CPUTask,以實現(xiàn)PLC內(nèi)不同代碼可以設(shè)備不同的執(zhí)行周期。CPU核需要指定BaseTime和CPULimitCPULimitTwinCAT使用的核每隔多長時間(BaseTime)去檢查一次是否要執(zhí)行Task中的Object。1msCPU的BaseTime1ms以下,然后再設(shè)置任務(wù)周期為BaseTime的整數(shù)倍。TwinCATCPU80%也可以根據(jù)項目需要作出修改。通常情況下,TwinCAT80%的CPU運算能力。至于實際占用了多少,用戶可以從開發(fā)工具或者PLC程序中。典型TC3RealtimeSetting4個CPUCPU3Limit100%,表示這是TwinCAT獨占的CPU。TwinCAT3中PLC的絕對地址區(qū)包括Input、Output、Memory,它們都是嵌入式計算機(jī)內(nèi)存的一部分,默認(rèn)設(shè)置大小均為128kByte。100Output區(qū)用于存放發(fā)送給外部設(shè)備的輸出信號,默認(rèn)為Input、Output、Memory區(qū)的變量時必須指定地址,它們在內(nèi)存中的位置是確定的,可PLC的習(xí)慣。大量的中間變量無須指定地址,而程序中完全是使用變量Beckhoff公司的PC-Based控制器內(nèi)存最小為128M最大可以擴(kuò)展到2GTwinCATPLC的內(nèi)存相對于傳統(tǒng)PLC而言,幾乎是無限的。提示1,如果沒有給Input和Ouput區(qū)連接外部設(shè)備信號的變量分配確定的地址,程序就無2,TnATLC提供函數(shù)Adr()來獲取變量的地址,用于指針賦值。這個函數(shù)既可用于DaaTwinCATPLC使用EPC或者IPC的CF卡、Cfast卡或者硬盤來數(shù)據(jù)。無論是程序還是數(shù)據(jù),實際上都是介質(zhì)上的一個文件,而目前可供貨的CF卡最大容量已經(jīng)達(dá)到32Gbytes,硬盤則高達(dá)500Gbytes,所以TwinCATPLC的空間幾乎沒有限制。對于程序,不僅可以在PLC上保存機(jī)器碼,而且可以源代碼。需要的時候,工程通過一定的操作,它的值就保存在介質(zhì)上的一個文件中。此外PLC數(shù)據(jù)還可以通過文件讀寫的方式,按指定格式保存到介質(zhì)中,然后到其它應(yīng)用程序(比如Excel、Notepad)中觀察和分析并集中保存。TwinCATPLCXML文件讀寫,這使得配方保TwinCATPLC的所有運行數(shù)據(jù)都在RAM里面,掉電即清零。需要掉電保持的變量,必CF卡或者硬盤上文件,或者保存在一種特殊的硬件“NovRAM”中。具體方法參考《TwinCAT2.0從入門到精通》第五章“數(shù)據(jù)、配方和文件”。TwinCAT與外設(shè)的物理連接,實際上就是IPC或者EPC的主板與外設(shè)的連接。根據(jù)控些接口的數(shù)據(jù)。TwinCAT可以的硬件接口包括:EtherCATTwinCATPLC是如何與外設(shè)IO連接的。低成本獲得了市場認(rèn)可,新實施的項目通常用下圖的I/O連接方式:型的IO連接方式如下:上圖中,控制器使用一個內(nèi)置EtherCAT主站??刂破髋c電源模塊拼裝完成后,主板集成的EtherCAT主站就與第1個EtherCAT從站——電源模塊CX1100-是EtherCAT從站與從站的連接。1,初學(xué)者容易犯的錯誤是,把電源模塊看成EtherCAT主站,或者把第一條網(wǎng)線的起點“EK1110”看EtherCAT主站2,EtherCAT耦合器所IOEL模塊之間連接即背板總線稱為E-Bus,這是為了區(qū)別于現(xiàn)場總線耦合器所帶的IO端子KL模塊之間的背板總線K-Bus。實際上,E-Bus選型設(shè)計一個完整的控制系統(tǒng)包括控制器、I/O系統(tǒng)和人機(jī)界面。如果設(shè)備不是單獨工作,還要I/OIO模塊。如果是通訊方式,比如RS485接口的溫控表、CanOpen接口的變頻器、TCP/IP接口的機(jī)器視覺等等,那么在設(shè)備控制系統(tǒng)時還需要準(zhǔn)備相應(yīng)的通訊接口以及從PLC程序使用這些接口的軟件包。PLCHMITwinCAT要運行在同一個硬件平臺上,那么Beckhoff的PC-Based控制器包括EPCIPC兩大類。選擇控制器,首先要確定安裝方CPU和操作系統(tǒng),也就確定1步,確定安裝方式:導(dǎo)軌安裝,CX系列2步:選擇CPU之后,就能在選型樣本中找到正確的控制器型號了。最準(zhǔn)確的信息是在Beckhoff官網(wǎng)上,搜索該型號,找到“Features”中的標(biāo)準(zhǔn)配置,如果標(biāo)配不能滿TwinCAT運行核依賴于操作系統(tǒng)和硬件平臺,不是任意控制器都可以運行任意操作系TC2TC3CX系列,選擇控制軟件CX50xx、CX51x0系列、CX20x0CF卡或者Cfast卡上的工控機(jī)或者面板PC,就需要選擇使用WES732Bit、WES764Bit或者WinCE。WES慢快高低高低另用PC機(jī)編程只能用PC機(jī)編CE臺CX51xx系列控制器,則完全不包含卡,用戶必須增加Cfast卡選項。軟TwinCATPLCTwinCATNCPTP(10以內(nèi)軟TwinCATPLCTwinCATNCPTP(10以內(nèi)軟TwinCATPLC軟TwinCATNCPTP(10以內(nèi)軟件訂貨號根據(jù)控制器性能級別不同而不同,“-00x0”中的x就表示控制器的PerformanceClass標(biāo)注。如圖所示:NC軟件訂貨說1-10等效于11-2526-255注意:TF5010TF5020都是指在TwinCATNCPTP10充,而不是單獨的25軸或者255軸NC。訂貨軟件名功能簡TC3ControllerPID,F(xiàn)ilter,RampGenerator溫控TC3MC凸TC3MCFlying飛TC3NCFifoTC3MotionControl常用于EL1252、EL2252XFC模塊TC3OPC常用于與非Windows系統(tǒng)TC3OPC常用于與高級語言或者HMITC3Modbus訊,并使用ModbusTCP協(xié)議Modbus常用于與觸摸屏或者儀表經(jīng)串口通訊,并使用ModbusRTU協(xié)議TC3TCP與視覺系統(tǒng)等第設(shè)備的以太網(wǎng)訊TC3SerialRS232或者RS485串口通訊EL60x1或者經(jīng)PC的Com口與第備通TC3Database用于PLC直接操作數(shù)據(jù)TC3XML常用于配方等掉電TC3PLC至少要16G。如果標(biāo)配是64M的CF或者Cfast卡,就必須訂購容量擴(kuò)展選件了。如果HMI復(fù)雜的話,建議擴(kuò)展內(nèi)存到2G或者更大。CPUIPC,如果標(biāo)配的CPU性能不夠,還可以升級。第7步,電源、UPS和電池致文件損壞,所以通常會配上UPS和電池。在CX系列支持TC3CX20x0x0表示不帶UPS,x9表示不帶y045wCX2020CX2030190w,用于CX2040.CX2100-0914是用于CX2040帶UPS的電源模塊,這個模塊還必須電池CX2900-0192系統(tǒng)擴(kuò)展模塊,包括串行通訊模塊、現(xiàn)場總線模塊等。對于使用EtherCAT的系統(tǒng),這EL模 Com1和Com2。如果要擴(kuò)兩個模塊就“2”和“4ComPCComTwinCATPLC中的用法也完全相同。COMEL60xx代替。好處是EtherCAT接口的現(xiàn)場總線接口模塊和普通的E-Bus端子模塊一樣,可以位于EtherCAT網(wǎng)絡(luò)的任何位置,數(shù)量也不受CPU限制。 I/OEtherCAT。AI:信號類型是什么?121624位模塊,價格較貴。AO:信號類型是什么?121624位模塊,價格較貴。編模塊:SSI還是增量編?單端還是差分信號?是否需要C相或者Latch點?通訊網(wǎng)關(guān)模塊:是否要接入其它現(xiàn)場總線(ProfibusCanOpen等等,通訊的對方是從站還是主站?是否需要擴(kuò)展RS232或者RS485接口?塊組來說,終端模塊是EL9011。DOIO10A,就要增加負(fù)載電源模塊EL/KL9100。5V、2A的控制電源容量。選型手冊(厚樣本)KLELE-busK-busIO2A就必須增加控制電源模EL/KL9410。ZK1090-9191-0005:0.5米線和RJ45接頭。4針I(yè)P20,10 /english/ethercat/accessories安裝和接線用戶手冊:I/O端子,廠家并不隨貨提供紙質(zhì)說明書,用戶可以到 或者Http: .cn,或者安裝Beckhoff套裝DVD中的TwinCATPLC以及幫助文件,即可從C:\TwinCAT\InfoSystem\1033下找到所有 或者Http: .cn,或者在“Beckhoff套裝DVD/Technical_Drawings/”路徑下找到相應(yīng)類別/型號的AutoCAD圖需要強(qiáng)調(diào)的是電源模塊的接為安全起見,凡是供入電源的地方,包括X電源模塊、耦合器E110x、EL9410,其控制電源(s)和負(fù)載電源(p)應(yīng)獨立供電,并且兩組電源的24V和0V進(jìn)模塊之前都應(yīng)該分別加上保險絲。Us的保險絲熔斷電流為PU和模塊E-bu/-bus額定功耗折算成24V供電時電流的12倍。而Up的保險絲熔斷電流則為計算負(fù)載總電流的2倍左右。 節(jié)選自《TwinCAT3.1學(xué)習(xí)筆記_V1.10_ 在編程PC上安裝TwinCATPC上安裝TwinCATTC3圖標(biāo)和TC3RuntimeTC3啟動TC3TC3QuickStart設(shè)置TC3System|Routes開發(fā)第一個PLC建一個PLC編程入概(XAR一些常用的基本操作步驟。TwinCAT3開發(fā)版是免的,可以從Beckhoff任意分支機(jī)構(gòu)獲取TwinCAT套裝DVD,也可以從FTP,然后安裝在工程師的編程PC上。 TC3TC3Win7VMWare虛擬機(jī),由于文件太大,在編PC上安裝TwinCAT開發(fā)環(huán)境/ /TC3安裝包 2016.10.07,TC3的最高版本是Build4020.14complete安裝,安裝包會自動識別出PC中VS的版本。如果你電腦中安裝有多個版本的VS或者VSS,系統(tǒng)會提示你選注意:如果要使用C++編程,用戶應(yīng)先安裝VS,再安裝TC3,否則需要卸載TC3,再裝VS,重新安裝TC3。安裝TC3- : 很多用戶同時使用TC2和TC3的開發(fā)版,但兩個服務(wù)不能同時運行。TC3中提供了切如果要從TC2切換到TC3初步認(rèn)識開發(fā)環(huán)境TC3TC3Runtime件PLC來比喻TwinCATRuntime的三種模式,可以表述為:配置模式——PLCPLCIO停止模式——PLC不存在。注意如果編程PC上的TwinCAT處于停止模式,就不能對其它PLC編程如果控制器上的TwinCAT處于停止模式,就不接受任何PC的編程配置。TC3進(jìn)入哪個版本的VisualSudio中的TwinCAT3在 的開發(fā)環(huán)境下,按TC3QuickStartBeckhoff公司提供的完整的TC3示例程序是:“\TC3培訓(xùn)資料\4SamplesTC3SortingSstem.zip激活配置ActivatetheTwinCAT例如1.主電源開關(guān)2.自動模式3.試用可以用7天。之后會再次收到提示,重復(fù)以上動作可以再用7天,以此類推。所以 )TC3的正式有兩種形式,一種是硬件(EL6070端子模塊,一種是軟件。器上的,由Beckhoff提供與CPU唯一匹配的文件,并放到控制器的指定路徑,才)發(fā)郵件到tclis您訂購的軟件TC1xxx,LiscenseID為:xxxxxxarget在“ManageLiscenses”頁面選中需要的,點擊“GenerateFile”,并選擇保存路徑。按提示發(fā)郵件到tclis出功能為GenerateLicenseRequestFile的按鈕。權(quán)不可用,推薦使用Win7系統(tǒng)。編程準(zhǔn)備:添加路由(AddADS編程PC總是通過以太網(wǎng)對PC-BasedPC之間的通訊一和控制器的IP地址設(shè)置為相同網(wǎng)段。PCTwinCAT控制器進(jìn)行編程調(diào)試。假定局域網(wǎng)內(nèi)除了普通PCTwinCAT運行版的控制器,以及安裝了TwinCAT開發(fā)版的編程PC。這PC之間何區(qū)分呢?簡單地說,所PCIP地址區(qū)TwinCAT控制器及開發(fā)PC之間以AMSNetID區(qū)分。說明NetID是一個6段的數(shù)字代碼。TwinCAT控制器NetID的最后兩段1”,而前4段可以自定義。從Beckhoff訂購的控制器出廠有一個默認(rèn)的NetID,用戶可以修改,也可以維持PC安裝TwinCAT之后也有一個默認(rèn)的NetID。必須確保同一個局域網(wǎng)內(nèi)的NetID沒有重復(fù)。習(xí)慣PCNetID設(shè)置IP地址加上后輟“.1.1。比IP地址是“19”,NetID就設(shè)置為“9.1.1。NetID修改后,系統(tǒng)會要求重啟電腦,選擇“YES。這是由于NetID是在操作系統(tǒng)的表中,每次開機(jī)TwinCAT服務(wù)啟動時,就已經(jīng)確NetIDIP地址的綁定關(guān)4段可以相同,也可以TC3System|Routes之通訊的TwinCATIP地址(或者HostName、NetIDTwinCATLocal,就可以從以下界面看到本機(jī)的NetID及路由表:點擊CurrentRoutes按照前面設(shè)置好IP地址和NetID后,就可以添加路由表了。方法如下: TargetSystem以初學(xué)者推薦選用IPAddress的方式。點擊AddRouter出廠設(shè)置:非CE系統(tǒng),用戶名:administrator,:1;出廠設(shè)置:CE系統(tǒng),用戶名和均為空白。輸入后點擊OK,若成功則Connected項會顯示X標(biāo)記,如圖所示TC3運行核的狀態(tài),左上部紅色框中顯示當(dāng)前登陸的目標(biāo)控制器“Target”的名稱和NetID。提示1如果仍然掃描不到或者加上不路由,請參考“小技巧:加不上路由的若干可能性2,連接中斷后,只要SstemManager沒有選擇其它argt,編程PC就會連續(xù)嘗試恢復(fù)與目標(biāo)控制器的連接,直到與連接恢復(fù)。中間可能導(dǎo)致對其它應(yīng)用程序的響應(yīng)緩慢甚至半死機(jī)狀態(tài)。如果想中斷連接嘗試,可以從編程PC的TwinCAT圖標(biāo)快捷菜單中將本機(jī)的inT狀態(tài)切換到p,onig.開發(fā)第一個PLC項目Step1.File|New|Project.argetTC3窗體的右下角(2處)圖標(biāo)顏色,可以知道目標(biāo)系統(tǒng)的運行狀態(tài),藍(lán)色表示配置模式。點擊上圖左上方(3處)圖標(biāo),可以在運行模式和配置模式之間切換。Step EL7041兩個Axis.Step TC2中一樣,F(xiàn)reeRunPLCIO模塊是否正常,上圖左邊的紅線框內(nèi)圖標(biāo),就是FreeRun按鈕。打開項目——ChooseTarget——FreeRunStep 最簡單的LC程序,可以直接跳到Step11,編寫其它邏輯。Step Step Step FB實例Step CallMAINF2CallInstance,//InstanceCall才會有接口變量顯示,如果象TC2一樣插入Local變量,就沒有Step10.Step11.說明:PLC編程時對變量名的不區(qū)分Step12.編譯和試運行先編譯PLC編譯成功才會出現(xiàn)PLCInstanceMotionInstancePLC用于映射IO模塊的IO變量.Step13.把8個DO通道到PLC的輸出變量Step14.左上角的紅框中的按鈕表示激活配置,包括硬件配置和PLC程序都會到控制器.如果上圖中還勾選了“AutoStartBootProject”,程序就會自動運行。面的調(diào)試階段,Login時,程序只是到內(nèi)存運行。為了讓控制器斷電重啟后還第1步:TwinCAT啟動模式。,CE系統(tǒng),Username和Password都為空白。對XPe系統(tǒng),默認(rèn)的Username為第2步,PLC啟動設(shè)置。TwinCATRuning模式后,將自動到指定路徑下找到指定文提示:特殊情況下,不想讓PLC程序自啟動,也可以在此取消設(shè)置LoginActivateBootProject菜單項,開發(fā)PC就會把程序執(zhí)行碼這樣下次TC3啟動時就會到這個路徑下找到相應(yīng)的PLC程序來啟動運行上傳、和比PLC程序的上傳和比 前運行的TwinCATProject。 節(jié)選自《TwinCAT3.1學(xué)習(xí)筆記_V1.10_ 新增變量類型UNION和ST中增加了ContinueJump 支持變量作為Bit兼容TC2SystemManager中的Watch兼容TC2的Watch關(guān)于Task關(guān)于PLCSmart兼容TC2添加EtherCAT第從站設(shè)3.8.1.TwinCAT的開機(jī)自啟TC2的控制器可以刷TC3IMAGETwinCAT3Standard.lib中的FB用法,比如定時器、計數(shù)器、上升沿、下降沿組態(tài)畫面編輯器TargetVisual的使用變量 LNTNTODT:=CONCAT_DATE_TOD(DATE,DT:=CONCAT_DATE_TOD(DATE,WSTRING:Unicode格式的字符,比如顯示中文。即PLC中字符串變量可以直接識別UNIONUnion里面的各元素首地址是對就對應(yīng)Byte“49、50、51”,即16#31、16#32、16#33。輸入變量、輸出變量和需要按地址的M區(qū)變量,時需要增加“地址”部分,語 AT 型W表示W(wǎng)ordinput“Q”表示output“M”表示memoryTwinCAT3中,每次編譯都會為使用*IO變量重新分配地址,如果變量有增減,TC2的老用戶需要特別注意,TC3的PLC中,%IBn\%IWn\%IDn的在內(nèi)存里占用起始分Index舉ADS偏移:16#1F400+n,或ADS偏移:16#1F400+n*2128000+n*2PLC地址:%IDnADS偏移:16#1F400+n*4ADS偏移:16#3E800+nADS偏移:16#3E800+n*2256000+n*2PLC地址:%QDnPLC地址:%MWnADS偏移:16#0002n*2PLC地址:%MDnADS偏移:16#0000+n*4,即慶幸的是,所有ByteOriented的變量,無論是字節(jié)BYTE、字WORD、雙字通訊的變量會放到一個結(jié)構(gòu)變量中,而結(jié)構(gòu)變量都使用Byte地址,在TC3中要注意結(jié)構(gòu)8的倍數(shù)。以避免ADS通訊雙方平臺不同對齊格式不同引起的沖文件修改TC3中的PLC地址區(qū)大?。壕唧w參考第1章“PLC的數(shù)據(jù)區(qū)”ARM:4TC2:1所以TC3中對于自己定義地址,推薦直接8字節(jié)對齊。而項目TC2升級TC3時,TC3的規(guī)則。比如是否把一個變量輸入變量、輸出變量和需要按地址的M區(qū)變量,時需要增加“地址”部分,語

Array[1..6]OF 7PLCInputOutputIOIO變量,編寫TC3PLCTC2TpyTC2中AppendTpyPLCTMC接口對象,這時就已經(jīng)為IO變量自動分配好PLC地址了。如果是重新編譯,那么TMC接口也會自動更新。TC3PLCPLCInstance,在右邊的窗體中選擇DataArea頁面:上圖中的Offs(偏移量,就是地址attributeMode的選擇顯示。roupPLCPLCAdditionalTask或者NovramRTEthernet中使用結(jié)構(gòu)型變量,怎么辦呢?TwinCAT3提供了一種變量類型:GlobalDataType。單擊“ConverttoGlobalDataType”即可:SystemTypeSystem中。此處可以看到所有的數(shù)據(jù)類型,包括PLC程序、的。TwinCATIOAdditionalTaskwithImage的接口變量中可以使用上圖中的所有類型。下圖以Novram中的Input為例:TC3PLCIO變量,無論局部變量還是全局變量,其刷新周期就是它被調(diào)用的代碼所在的任務(wù)周期。對于沒有被調(diào)用過的IO變量,編譯后就固定在所有PLC的ReferenceTask中優(yōu)先級最低的那個任務(wù)下面。上圖中可以看出,同樣是在MAIN中定義的局部變量,x1在MAIN代碼中過,x2沒有在任何地方過,結(jié)果x1出現(xiàn)在代碼所在的PlcTask中,而其它變量出現(xiàn)在優(yōu)先級更低的Task4中。經(jīng)測試,與周期無關(guān),僅與任務(wù)優(yōu)先級有關(guān)。務(wù)中把中轉(zhuǎn)變量賦給Map到Novram的IO變量。還要考慮第一個PLC周期,讓數(shù)據(jù)反向流動,即把IO變量的初始值賦給中轉(zhuǎn)變量。編程語言和新增功能注釋:單行注釋“//”,多行注釋這是只介紹其中幾個,完整的指令集請參考TC3InofVar1AT%IX2.3 REALtore:REAL:=i:INT:= 除了原來的IEC編程方式外,還增加了 TwinCAT2INTWORD型變量的某一位取出來用,Varname.n中的n必須是個常數(shù),在TC3中,允許用變量作為Bit值了。xxx.enable:=true;(*->thethirdbitinvariablexxxwillbesetTRUE在POU中增加注釋變量中等等,Infosys上有詳細(xì)說明。診斷和調(diào)試功TC2SystemManager中,如果任意變量想臨時監(jiān)視一下,可以從它的右鍵菜單中選擇AddtoWatch,在窗體底部就會出現(xiàn)臨時監(jiān)視列表。TC2SystemManager時,變量監(jiān)視表并不保存,它的優(yōu)點是使用便捷。這個功能在Tc3中通過ADSSymbolWatch功能實現(xiàn):不能直接加變量,只能先選中變量,再右鍵AddtoADSSymbolWatchAddtoTC3WatchListLiveWatch不同,WatchList是可以選擇變量選中Watch1-4對于結(jié)構(gòu)體或者FB,可以通過變量的屬性設(shè)置它是否出現(xiàn)在外部的提示列表中:通過添加屬性{Attribute‘hide’}或者{Attribute‘hide_all_locals’} 任務(wù)和程序TC2中,PLC項目的TaskTwinCATRealtimeTask有預(yù)先設(shè)定的對應(yīng)關(guān)PLCRun-time1Task0-3總是對應(yīng)TwinCATRealtimeTask25-28。和一個名為Main的程序(PRG,并指定在Plk中調(diào)用Main程序。如圖所示:PLCTask是其它程序與Main的執(zhí)行周期相同,那么可以直接把PRG拖放到上圖中的Plk下。另一種情況則是與Main的執(zhí)行周期不同,那么就要按以下步驟:在PLC項目中任選中POUs下的Pro_IO,直接拖放到 方法二:從PLC項目中的Task右鍵菜單中選擇Add–Existing結(jié)果,指定的Task下面就出現(xiàn)了要的PLC程序指定期低于1ms,就需要修改TimeBase的設(shè)置。TimeBase50us1ms。所有任務(wù)周期必須是TimeBase的整大。因此,在滿足任務(wù)周期設(shè)定的前提下,TimeBase應(yīng)盡可能設(shè)置得大,比如,等于最小50usPLCCX50x0、CX90x0系列EPCTimeBase50us,即使代碼行為空,TwinCATPLC一旦運行起來,CPU利TwinCAT3PLC,所以必須謹(jǐn)慎考慮優(yōu)先級排Taskwith類似TC2的AdditionalTask,僅TwinCATIOTC3IO級別的控制器,比如在第工控機(jī)安裝的TC1100-0090.IOattaskPOUIOattaskbeginningNOCHECK等功能。PLCCPU核,否則可能引起優(yōu)先級錯Sample:APOUwhichwillbecalledbyantaskwithalowprioritycanbeassignedtoanindependentcore.Inthiscaseexiststhepossibility,thatthetaskwiththelowerpriorityfinishestheexecutionearlierthanthetaskswiththehighpriority.TwinCATI/OIdleTask,負(fù)責(zé)處理主站和從站之間的異步通訊。I/OIdleTask1-4ms,它的優(yōu)先級應(yīng)該比使用DCNC,最好介于SAFSVB之間。但對于NCI,有時候它的優(yōu)先級應(yīng)該低于SVB。新建一個PLC項目,系統(tǒng)就會自動建兩個任務(wù):PlcAuxTask和Plk。但是創(chuàng)建第2個PLC項目就不會新建任務(wù)了。PlcAuxTaskADSClient的Request,屬于事件觸發(fā)固定在極低的優(yōu)先級50,不需要周期性執(zhí)行,所以它沒有CycleTime。隱含的變量和函數(shù)t:修改次_TaskInfo結(jié)構(gòu)型數(shù)組元素包含以下信息: AdsPort是不一樣的。TaskInfoAdsPort是針對任務(wù)的,AppInfo里的AdsPortPLCHMI通訊的,通常是指后者_(dá)AppInfo里的端口,比如默認(rèn)的851.己建立一個CheckBounds類似的函數(shù)。在TC3中,默認(rèn)已打開這些校驗功能:如果要關(guān)閉,可以在圖中取消勾選編程環(huán)境的設(shè)Tool|Smart如圖所示,輸入首字母就有變量提示了TC3項目時總是使用默認(rèn)路徑,因為TC3M,這樣系VS打開時是否打開最后一次編輯的項目,是否顯示Start頁面,開發(fā)環(huán)境背景色等等,可以逐一嘗試。兼容TC2的功能多語言混合編程而后者用結(jié)構(gòu)文本寫起來就比較方便。TwinCATPLCControlPOU中添加使用Action的操作方法如下:第1步:添加Action填寫Action提示1,主程序用結(jié)構(gòu)文本ST編程,調(diào)用子程序會比較簡潔方2,Action不僅用來換一種編程語言,還可以把實現(xiàn)不同功能的代碼放在不同的中,增加主程序的可讀認(rèn)的庫文件Standard.lib中的Function和FunctionBlock。STPOU+加-減*乘/除>=<in1MODPOUin1ininKinKinKinKin1(G是TRUE)之間的二進(jìn)制選in0in1者inMINK個值REALinininin10inininininininEXPTexptininstandard.lib串standard.lib給定長度的右起strstandard.libINSERT(str1,在串standard.lib位置插入串DELETE(str1,posstandard.libstr2,len,由str2替換部分的串(lenstr1posstr1str2FB:Semaphor軟件(可中斷的換換INT操作數(shù),轉(zhuǎn)換類REAL操作數(shù),轉(zhuǎn)換TIME操作數(shù),轉(zhuǎn)換TOD操作數(shù),轉(zhuǎn)換類DATE操作數(shù),轉(zhuǎn)換STRING比如: ; ; Axis_Interface; Real; :=ADR(Motors[1]) :=ADR 在TC2中,TwinCATSupplement分兩種,一種只是供PLC的庫文件,比如串行通服務(wù)等。這些Supplement都是安裝在編程PC上,輸入碼,就可以解壓出PLC庫文件Supplement,PC的“C:\TwinCAT\CE”生成CE安裝包,即CAB文件。如果控制器是CE系統(tǒng),只要CAB文件到CE控制器上Beckhoff庫文件。但是在控制器側(cè),需要和激活Function的。程PC上,但安裝時不需要輸入,除了在編程PC上安裝了服務(wù)外,也會在“C:\TwinCAT\Functions”生成安裝包,即CAB文件,比如:如果控制器是CE系統(tǒng),只要CAB文件到CE控制器上安裝即可。如果是Win7或者XP系統(tǒng),就需要將Supplement的Install文件到控制器上安裝運行。開發(fā)PC上的Function服務(wù)可以使用免費的7天試用,但在控制器上的Funtion服安裝,服務(wù)類Funtion需要在控制器上安裝。Funtion的安裝包和碼都不再區(qū)分CE系統(tǒng)和Win7系統(tǒng)。EtherCATXML描述文件,調(diào)試前請將該文件復(fù)TC2中需要關(guān)閉TwinCATSystemManager再重新打開,才會裝載新TC3TwinCATEtherCATDevices|ReloadDeviceDescriptions如常見問題考“2.2.3TC3TC2之間切換”。如果開機(jī)時兩個都要禁用,則按下面的說明。機(jī)啟動的時間都比較長。對于不是經(jīng)常使用TwinCAT開發(fā)的用戶,為節(jié)約時間,可以將TwinCAT服務(wù)設(shè)為手動啟動。方法如下:TC3BITBOOL型變量不同,Bit型的變量位于一個數(shù)組或者結(jié)構(gòu)中時也只占一個BITBOOL型變量在結(jié)構(gòu)中卻要占用一個BYTE。利用這個特點,可1632個BIT型的變量定義為一個結(jié)構(gòu),該結(jié)構(gòu)的長度為2Byte4Byte。ST_DS402_Status:TYPEST_DS402_Status://DS402Ready_to_On: BIT//ReadytoswitchonSwitched_on: BIT//Switchedon BIT//Operationenabled BIT//Fault BIT BIT//Switchondisabled BIT//Warning Internal_limit//Internallimit %IW0 ST_DS402_StatusBit,可以不顯示出來。此時需要在結(jié)構(gòu)定義處修改元素的屬性為“Hide”, 合UNION實現(xiàn)。TYPEUN_Status再修改StatusWord的類型為剛才定義的UNION: AT%IW0:UN_Status;IO變量時把UNION的兩個元一到硬件就行了。要簡潔看16個BIT的StatusWord.wStatus的值,例如值為15時,表示低4TRUE。 變成 ProcessData的拆分和組裝。 ARRAY[0..2]OFUDINT;mand:REFERENCETOrefCmdFlag:REFERENCETOUDINT;refCmdType mandREF=aPlcToHmi[0] refCmdTypeREF= 21; //StartHoming //SetCommandFlag使用Reference比另建一個變量的好處在于,另外一個變量時,變量的值只能通過賦值Reference時,因為實際上是指向同一個地址,所以隨時操作一個變結(jié)構(gòu)之一,ReferenceADSCreateHandle不能指向結(jié)構(gòu)體元素的問因為TC2的消息窗大家都很熟悉了,種類也不多,常常憑操作。但TC3中的消息(%I* 節(jié)選自《TwinCAT3.1學(xué)習(xí)筆記_V1.10_ 4.1.1.BeckhoffAumationGmbH的4.1.2.升級TC2 開發(fā)PCTwinCAT3擴(kuò)展庫文件BeckhoffAumationGmbH的庫如Advanced方式顯示的庫,在TC3中庫文件可以按功能分類,便于用戶查找,并且(見TC3培訓(xùn)第10章第1節(jié))。1TC2PLCControlTC3LibraryFilesCompiledLibraryFiles庫。通常涉及問題或者相對成庫發(fā)布成CompiledLibraryFiles,如果允許其他人查看甚至修改源代碼,則發(fā)布為LibraryFile,LibraryFile時還可以StepIN和StepOver。二者的后所謂第庫文件,可能是用戶自己寫的庫文件,也可能是非Beckhoff的其它設(shè)備制造商提供的庫文件。在TC3中,這種庫文件分需要安裝和兩個步驟。LibraryPC的“C:\TwinCAT\3.1\Components\Plc\Managed是公司名稱,第二層是Title,第三層是Version。每一Version1個在不同的下,所以TwinCAT3TC2里面的庫文件版本換了,引起程序不兼容在上一節(jié)第庫文件的不同版本時,相同Company相同Title而Version不同的通過使用PlaceHolder來提示。比如用法2:調(diào)用。括號外面是PlaceHolder,括號里面是NameSpace。如果同一Title和命名空間,不同的版本,使用不同的PlaceHolder,就比單純的版本號更容易識別。比如NissanTechlong用的庫,和五菱通用的庫,各自改裝之后都 以前PLC程序變量。程序歸檔MeasurementScope一個TwinCAT項目包括,如果要遷移到另一臺PCSaveprojectAsArchive。這樣才會把所用到的庫都如果要整個PLC程序項目打包成標(biāo)準(zhǔn)的TC3如果直接選擇SaveProjectNameAsPLC相關(guān)文件放入另一個文件夾,而沒要在一個項目中插入一個PLCPOUDaaype文件夾也不是固定的,用戶可以把同能相關(guān)的POU、數(shù)據(jù)類型、變量表放到OpenXML文件,包括它們所在的文件夾。序后類生成方打開方歸檔文AddExisting項目歸Add——Existing方案歸File——OpenFrom示波器配右鍵菜單Add——Add— 還可以選擇Scope2的示波器配置文件.sv2和數(shù)據(jù)文件項目文AddNew導(dǎo)出文都可以導(dǎo)出成xti同樣位置AddExistingTC2PLC序AddExistingItem(選擇TC2PLCTC2ProjectLoadProjectfromTwinCAT2.xxUpdatedByLizzy程序加密及OEMOEM則是為了未取得的控制器運行需要的程序段或者功能塊。設(shè)備 (2017.08.01補(bǔ)充)測試證明:如果僅僅是測試功能,而不是真正的項目開發(fā)加密,可以把以前申請的簽發(fā)BCGZ_LizzyChen.tccert發(fā)給其它客戶,12345。此時可直接跳到第4步,把收到的.tccert文件復(fù)制到開發(fā)PC的 s下。 BCGZ_LizzyChen.tccert4,把收到的.tccert文件到開發(fā)PC的C:\TwinCAT\3.1\CustomConfig\s下。用戶的權(quán)限取決于上一節(jié)中把它配置到哪個GroupGroup的所有用戶有4 用戶名稱和級別設(shè)置好后,保存在C:\TwinCAT\3.1\CustomConfig\UserDBs下,文件名.tcudb。文件名可以到其它電腦,并可以用“ReinssueExistingUserDB”(最后一個按鈕),導(dǎo)入.tcudb文件。POU對象的屬性頁“Security”3項,區(qū)別是默認(rèn)值為Inherited,即從PLC項目的安全屬性中繼承。ObjectProtect級別所允許組別權(quán)限是否匹配。匹配,則允許操作,否則所試圖的操Signed。Tip:PLCSigned設(shè)置為True,那么以Guest無權(quán)限登陸時,項目顯能新建PLC項目:UserDB嗎?要用PLCEncrypt后程序一樣可以自啟動運行,與用戶級別無關(guān)。Boot下的文件都可以刪除,也沒有保護(hù)起來。用Guest不能創(chuàng)建引導(dǎo)程序,但顯然與Encrypt選項無關(guān)。到另一臺電腦,選擇所用的UserDB選擇到準(zhǔn)備登陸的用戶,然后再打開項目。(201708.03Encrptfil把encrypt改成FALSE可以打開OEMDongle。操作系統(tǒng)Win7或者更高,TC3Build4022及以上。 :C:\TwinCAT\3.1\CustomConfig\Licenses“Creaicense.exe” : 在OEM設(shè)備廠的管理PC上,如下操作:通常一個OEM設(shè)備廠只能從倍福公司得到一個管理的文件,即OEMCertificationFile。為這個Application的.tmc文件要發(fā)給最終用戶。:Tmc文件比如的“BAC_FifoControl.tmc”6,OEM設(shè)備廠的軟件開發(fā)人員在TC3的PLC程序中,當(dāng)前有的:答:對于OEM設(shè)備,運行的程序和需要的應(yīng)該是確定的,所以O(shè)EM廠家可以把請求模版事先放在\TwinCAT\3.1\CustomConfig\Licenses中。再通過程序去找相應(yīng)的授權(quán)在不在。在庫文件或者功能塊中,加上當(dāng)前的功能塊FB_GetLicenses。如(How?者延期停機(jī),由OEM廠家決定。2,關(guān)聯(lián)到一套UserDB的項目,即使取消了關(guān)聯(lián),如果下次打開后關(guān)聯(lián)到另一個User開發(fā)環(huán)境的版本兼容Local版本,即開發(fā)PC上的TC3XAE版本。Remote版本,即控制器上的TC3XAR版本。PCRemote版本的控制器編程。至于Project版本,客戶者來自廠家的Demo程序,這些都是很容易發(fā)生版本不同的情況。Runtime版本的控制器編程時,可能需要不用的開發(fā)版本。Beckhoff提供專門的插件(TwinCATRemoteManager)來解決這個問題。使用步驟如下Step Step PC上運行RMStep3 VSView|Toolbar中勾選TwinCATXAERemoteManager。VS再重新打開才能選擇。默認(rèn)初始版本是Local的最高版本,可以在Tools|Option中選擇TwinCAT|XAEEnvioment|General中設(shè)置:

TC3支持同一個庫文件的多個版本同時存在于開發(fā)環(huán)境中,新建項目時默認(rèn)使用最高TC3上總是盡可能包含此前所有版本使用的庫。最經(jīng)常升級的庫是注意:上圖是在開發(fā)PC上安裝了多個RM時就需要找到該版本的庫文件(比如從原來開發(fā)這個項目文件的PC上)并安裝生效。對應(yīng)版本的庫文件在原開發(fā)PCC:\TwinCAT\3.1\Components\Plc\ManagedPC上,分別包括:0、0、0,而唯獨缺失了0缺失的文件安裝進(jìn)來,而不僅僅是。注意安裝的時候,TC3會自動選擇應(yīng)該放置的文件夾。并且不僅僅是編譯的庫文件要,同時還有projectinft;dependycies,browsercache這三個文件中的信息要和,所以先前試著給“C:\TwinCAT\3.1\Components\Plc\ManagedLibraries3.5.8下的VisuDialogsTC3,原來的項目引上庫上出現(xiàn)感嘆號。再改還原,打開TC3,感嘆號保待。重新Install這個庫文件,感嘆號才。在PC上要安裝所有版本的RM嗎?單個安裝TC3 節(jié)選自《TwinCAT3.1學(xué)習(xí)筆記_V1.10_ 關(guān)鍵名詞:Method和Method和Property,,InterfaceMethod或面向?qū)ο缶幊谈琶嫦驅(qū)ο缶幊?,即ObjectOrientedProgrammeOOPTwinCAT3編程工具的新功能之一,也是IEC61131-3第3版的新增內(nèi)容。FB有自己的輸入變量、輸出變量和中間變量。輸入變量會怎樣影響輸出變量,這其中的FB實例化多少次。每個實例與外部交互的方式,就是變量。其中,Input變量從外部可讀可寫,而Output變量和中間變量從TwinCAT3.0中,F(xiàn)B的內(nèi)部變量對外不可見。但是對外可見的除了輸入變量和輸出變量之外,還增加了兩種內(nèi)容:Method和Property。這種“方法”和“屬性”的思路,就不象傳新會令子對象也自動更新。此外,TC3還引入了一個概念:Interface。在Interface中只有MethodProperty的接口定義,卻沒有任何代碼。對于習(xí)慣高級語言的用戶,這些概念不難理解,對于傳統(tǒng)的PLC工程師和電氣工程師,這卻是個很大的躍進(jìn)。需要澄清的是,OOPTC3的新功能,但不是必須使用的功能。在TC3中,不僅OOP編程中,與FunctionBlock緊密相關(guān)的是Method和Property。Method是(PropertyMethodPropertyFB中寫代碼來實MethodPropertyInputOutput變量,但不可以FB的中間變量。ActionMethodTC2Action不會陌生。Action中編寫代碼以完成一連串相對獨立的動作,對應(yīng)一個設(shè)備的邏輯,MethodFBAction只有代碼,沒有自己的輸MethodIO變量,可以從外部單獨調(diào)用。Method可以有反饋變在Method中變量時,要注意選擇Object是Method的變量還是所在FB的變量。MethodFB的變量則會保持。此外還要選擇它是接口In_OutART,eh經(jīng)2018.03.27測試,在TC3.4022版本中,F(xiàn)B繼承時,Action和Method都能繼承,但是直接寫在FB下面的代碼卻無法繼承。自動出現(xiàn)了Get和Set,里面可以編輯屬性與內(nèi)部變量之間的關(guān)系。Get()里面必須編寫代碼,如果只有GetSet()代碼,表示這是“只讀”的屬性。如果在程序中直接使用外部寫入的屬性,等效于把該變量設(shè)置為Input變量。(InterfaceBlockTC2OOPTC2中完全沒有Interface的概念,在TC3中則是標(biāo)準(zhǔn)的OOP編程術(shù)語。OOP編程中,與Interface緊密相關(guān)的是Implement。把Method和PropertyFBInterfaceFB,其內(nèi)部代碼完全不同,卻有一致的外部接口?;贗nterface建立FB,就叫做“ImplementFBInterfaceInterfaceInterface只有被一個或者多個FB才有意義。和接口變量,沒有代碼和靜態(tài)變量。FBInterface的實例只是一個Interface操作該FB。FBInterface。尤其TC2的用戶,或者對指針概念不熟練的用戶,使用Interface操作FB反而弄巧成拙。(Extend之間,父對象的更新會令子對象也自動更新??梢允褂肊xtend功能的對象包括:父對象的Method,子對象可以原封不動地繼承使用,也可以重新編寫代碼重置該方法。引父對象和子對象含義不同的情況。某些時候如果要的是父對象中Method的代碼功能,就要前置Supper.Method來實現(xiàn)。以Extends方式建立的Structure,繼承了父對象所有的元素。使用Extends,可以由一個簡單的對象,派生出若干復(fù)雜的對象。因為有了繼承的關(guān)父對象。當(dāng)繼承的Method、Property或者變量做了重置,對象和它的父對象下的同名元素FB的寫法不同??偨Y(jié)起來,在TC3中創(chuàng)建功能塊時有3個方式:B(ExtendMethod和Property是面向?qū)ο缶幊蹋∣OP)Interface和Extend則簡單的示例并且注意所有的變量都在FB_Generator中,而不是Flash中,如下圖,Object都選擇FB_Generator。Get的代碼為:Cycletime_tCycletimeSet型設(shè)置為STRING。這樣vendor這個屬性就不支持寫我們可以先在MAIN程序中實例化這個類模擬一下,F(xiàn)B_GeneratorEXFB_Generator所有變量,方法和再重vendorvendor.get,其中使用super可以直接到被擴(kuò)展功能塊FB_Generator中的Vendor,并且使用CONCAT函數(shù)進(jìn)行程序并且login后可以觀察到vendor到的字符串CompanyYandCompanyXI_LampControl2個方法,onoff2個功能,開燈和關(guān)燈,返回類型是BOOL。鍵POUs新建功能塊,取名功能塊為FB_Lamp_ONOFF,并且勾選Implements,在選項框選擇之前創(chuàng)建好的接口I_LampControl。OnOff中寫實現(xiàn)代碼,當(dāng)然所有變量都需要在FB_Lamp_ONOFF中,而不是method中。示例:NC軸控的配套文檔\5OOPST_AxisPara:NC軸的參數(shù),比如運動速度、點動速度、原點位置、尋參模式等ST_DrvInInput信號,比如限位開關(guān)、原點開關(guān)、當(dāng)前力矩等。ST_AxisStatus:NC軸的當(dāng)前狀態(tài),比如:Ready、Error、當(dāng)前位置等。M_PowerOn:InputM_PowerOff:M_MoveVel:Input變量Execute:BOOL; nput變量MAIN中強(qiáng)制變量,或者在畫面P1中查看狀態(tài)和操作NCNC由于FB INTERFACEITF_Axis_ExEXTENDSITF_Axis繼承Axis_PTP,實現(xiàn)ITF_Axis_Ex,建立FB,名為:Axis_PTP_ExFUNCTION_BLOCKAxis_PTP_ExEXTENDSAxis_PTPIMPLEMENTSITF_Axis,例基礎(chǔ)上重構(gòu)尋參的的功能塊FB_Home_ByLimit。要使用這個尋參功能塊,有兩個辦法,一是直接修改前例中Axis_PTP_ExM_HomeAxis_PTP_Ex,以此類推,就會象TC2一樣衍生出很多版本的Axis_PTP_Ex,不利于代碼。TC3提供另一個辦法Method的重構(gòu),可以解決這個問題。只需要繼承Axis_PTP_Ex生成Axis_PTP_Ex2,然后修改它的M_Home中的代碼即可。繼承Axis_PTP_Ex,建立Axis_PTP_Ex2FUNCTION_BLOCKAxis_PTP_Ex2EXTENDSAxis_PTP_Ex位置遞增,沒有象上一步那樣位置立即跳變到 。這是由于新的尋參功能塊FB_Home_ByLimit生效了,而該模塊的尋參動作一開始是一個Jog運動(打開該功能塊的上圖代碼中用Axis_PTPinputPARA中的HomingMode來選擇尋參的模式。其它說明PRG有沒每次調(diào)用都初始化有首次調(diào)用時初始化 沒TwinCAT3FB3Method:FB_InitFB_ExitFB_Reinit。只要新建的Method,命名為其中之一,就會在特定的時間自動執(zhí)行:

Interface中的Method或者Property增加后,在使用它的FB中,右鍵“Implementinterfaces”,MethodProperty。但是減少時,并不會自動更新。因為FB允許在Interface之外,另行增加Action和Method。此時需要手動刪除。 節(jié)選自《TwinCAT3.1學(xué)習(xí)筆記_V1.10_ 啟用UnicodeComboBoxInteger和PlaceHolderTwinCAT3PLC節(jié)內(nèi)容為該第五章“TwinCAT3HMI可視化編程”的補(bǔ)充。HMIHMI應(yīng)用程序,此外TwinCAT3PLCproject|VISUs下自定義畫面也可以放到控制器上全屏運行,作為組態(tài)基本操作除了兼容TC2中的線框功能之外,TC3HMI提供了美觀生動的控件,包括指示燈、以及網(wǎng)絡(luò)教學(xué)“TC3配套”中的“TC3網(wǎng)絡(luò)培訓(xùn)”HMI要能作為組態(tài)軟件獨立全屏運行,必須在視圖管理器中啟用此功能。中文顯示W(wǎng)in7TC3配套文檔“Win7及XP語言切換和動態(tài)文本Textlist來實現(xiàn)的.TextlistTC3中的新增的一種對象,默認(rèn)新建一個空白的PLC項目時不包括TextlistProject右鍵菜單選擇Add”:”2,一個變量,例如:“a INT;.如果DynamicTexts這一項不顯示,需要設(shè)置“Property”選項卡中的Filter為Display執(zhí)行結(jié)果,aChinese_Chr表中的“ID”列的某個值,文本框2就會顯示這個值同一行的“Default”或者“缺省”Chinese_Chr不只兩列,其它列就會是ID值對應(yīng)的其它語言的字符。可否在程序里控制系統(tǒng)變量CurrentLanguage?待確安裝、和全屏運TC3的開發(fā)和運行環(huán)境都不需要額外安裝TC3HMI,但是需要運行環(huán)境需要,訂貨號TF1800-00x0,其中x隨控制器的性能等級不同而不同。WindowsStandardWin7,Win8,WinXP等。WindowsStandardTC3HMI既可與PLC運行在同一個CPU,也可以HMI到另一臺工控機(jī)上運行。與TC2相比,進(jìn)步之處在于不必把PLC程序的源代碼放在控制器或者IPC上。如果不在控制器上運行HMI而是在另一臺PC上運行,PCTC3的XAR安裝包,并與PLC互加路由。把控制器上的EXE和INI可以到運行畫面的PC, 新增的控件GroupBox只是提供一個類似高級語言開發(fā)界面時用的矩形框,把相對關(guān)聯(lián)的元素框起功利用TC3EventLogger和ADS通訊,可以讀入當(dāng)前列表,并作為數(shù)組顯示到HMI界面。在TC3中,由于支持Unicode,所以文本可以直接寫入EventLogger。PlaceHolder的用TC2PLCHMIPlaceHolder不會陌生,利用Placeholder,顯示不同的內(nèi)容。這個需要在時賦值的變量,就是PlaceHolder。TcpIp調(diào)試面板為例,才說明PlaceHolder的用法。首先,在子畫面的局部變量定義PlaceHolder,如圖所示:在子畫面的元素中關(guān)聯(lián)PlaceHolder的變量,比如文本框中顯示的變量值。由于指定了類型,使用PlaceHolder時不僅不用加“$”TC2PLCHMI我的DELL電腦上,只有Default可用,換成其它風(fēng)格就 節(jié)選自《TwinCAT3.1學(xué)習(xí)筆記_V1.10_ C++新建定義C/C++項目的數(shù)據(jù)區(qū)域(shotscreen,待完善發(fā)布和帶Interface的C++模集成C++調(diào)用C語言的代碼(C++對比例一:在TC3中實現(xiàn)一個XML例二:真實的TC3_C++C++C++TC3的擴(kuò)展功能之一。C++Module(模型)重復(fù)使ModuleObject(對象)InputOutput變量,它們可以直接映射到物IO,也可以映射PLCInputOutput變量,從而實現(xiàn)C++程序與PLC程序的實時數(shù)的Method來操作C++模型對象。此外,C++Module不僅可以在本項目使用,還可以發(fā)布為標(biāo)準(zhǔn)的組件,以便的其它Module包括PLC程序互相作用。C++編程環(huán)境的安裝 TwinCAT3_C++_V3.1.pdf”1C++項目(shot新建,編譯,實現(xiàn)工程模版,包括MouduleA.h,MouduleA.cpp,這是所有將來寫的代碼CycleUpdate里面被調(diào)用,然后才可以被TwinCATRuntime所執(zhí)行。這個CycleUpdate,就相當(dāng)于PLC里面的Main。MouduleC++里面不會默認(rèn)創(chuàng)建一個標(biāo)準(zhǔn)的任務(wù),所以要手動新建,然后就可以給Moudule綁定一個任務(wù)。在MoudleA中創(chuàng)建的Class1然后就可以在ModuleA.cpp中使用函數(shù)Add1()了。ModuleA.cppPLC中變量定義自動賦C/C++中,定義變量后需要在構(gòu)造函初初始化的時候手動賦一個相應(yīng)的初值,首先啟用Debugger用過VS在UserModeC/C++編程的人都知道,想監(jiān)視程序某個變量的話必須要設(shè)置一個斷點才能看到這個變量的當(dāng)前值。但實時核里面,TC3C++調(diào)試提供了一個功能“LiveWatchLiveWatch里可以看到當(dāng)前運行的這個模型里所有變量。先在TMC的Deployment型TMC是將來非常關(guān)鍵的一個功能東西,所有 添加屬性設(shè)置為AutoStart,加 注意要建成為%I和%QTMCIO變量中。則停止累加。這個邏輯完全符合C++模型中的代碼: 常用功能的實現(xiàn)方法TMCModuleA的DataArea,可以增加多個數(shù)據(jù)區(qū),而數(shù)據(jù)區(qū)的類型:Input/Output的Source/Destination。項目實例化之后就可以Map了:(shotscreen,notTypeSystemNewInterfaceInterface,可以在Interface中定義Method,Method里面還可以參數(shù)。在AInterfacePointer中,要指向這個接口類型,調(diào)用的時候,要對Interface進(jìn)行初始化。 如果創(chuàng)建C項目時,選擇WithADSPort,創(chuàng)建基于這個ClassObject時,就要求給它分配ADS端口。然后對象的內(nèi)部變量就允許通過ADS端口和變量名了。本節(jié)例程見配套文檔“PLC經(jīng)InterfaceC++模型對象打開tmc文件,首先創(chuàng)建一個輸出變量,選擇output→symbol,點擊加方法名:Set和Reset,另外再加個Clear(測試Interface實現(xiàn)代碼RUNfalse說明:此處仍然要注意區(qū)分大小寫該接口是在18.6.1中生methodresetset,并且更具需求可以增FB_initFB_exit等。對于要CMouduleInterface交互FB,必須要有FB_Init,用于初始化接口指針,以避免指針為0時被程序調(diào)用,導(dǎo)至程序異說明:以下代碼中,F(xiàn)B_exit和FB_init的代碼最好從例程中。例程見配套文“PLC經(jīng)InterfaceC++模型對象FB變量和代碼FUNCTION_BLOCKFB_ControlModule{attribute'TcInitSymbol':=''}oid:OTCID;ip_PlcControl:I_PLCControl;(*要換成實際Interface的名字代碼區(qū)為空Method“FB_exit{attribute'object_name':=

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論