




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
TwinCAT高級(jí)語言編程接口
1尚德明決財(cái)水蕪慶疊船溺寇媚誰堂相楔尸體醚江乞抉止構(gòu)蹄嘎桓占袋嫉封取堅(jiān)姿TwinCAT高級(jí)語言編程接口TwinCAT高級(jí)語言編程接口TwinCAT高級(jí)語言編程接口1尚德明決TwinCATSoftPLC工業(yè)軟PLC分類:實(shí)時(shí)運(yùn)行核:使用操作系統(tǒng)的實(shí)時(shí)性自主研發(fā)實(shí)時(shí)核編程語言PLC程序執(zhí)行機(jī)制和Windows應(yīng)用程序的執(zhí)行機(jī)制不同,Windows應(yīng)用程序是通過消息機(jī)制觸發(fā),而PLC程序的執(zhí)行時(shí)通過一個(gè)定時(shí)器自動(dòng)定期觸發(fā)。因此對(duì)于軟PLC來說,定時(shí)器的精準(zhǔn)直接影響PLC邏輯執(zhí)行的準(zhǔn)確性和效率。自主開發(fā)的實(shí)時(shí)核和操作系統(tǒng)依賴性小,更穩(wěn)定,更準(zhǔn)確。目前世界上主要有三家公司開發(fā)了實(shí)時(shí)核:Beckhoff,IntervalZero,TenAsys。目前我們公司的實(shí)時(shí)核還不對(duì)外開放,TwinCAT3以后將對(duì)外開放,對(duì)外開放就意味可以使用高級(jí)語言來編寫PLC程序。目前TwinCAT系統(tǒng)中想使用高級(jí)語言來進(jìn)行控制只能使用操作系統(tǒng)的實(shí)時(shí)系統(tǒng)通過R3IO來實(shí)現(xiàn)另外一種軟PLC。:編程語言計(jì)算機(jī)高級(jí)語言(如C++)(R3IO)IEC61131-3國際編程標(biāo)準(zhǔn)
2撐秘廈費(fèi)痕郎蘊(yùn)獅綠先飛妊腑鎮(zhèn)郝嘔鴻方杠泅采拔球煎幣篷又晦吸據(jù)攬忽TwinCAT高級(jí)語言編程接口TwinCAT高級(jí)語言編程接口TwinCATSoftPLC工業(yè)軟PLC分類:高級(jí)語言和下位的通訊方式上位用戶界面和BECKHOFF產(chǎn)品通訊主要方式:實(shí)時(shí)非遠(yuǎn)程:R3IO非實(shí)時(shí)遠(yuǎn)程:ADS通訊,Modbus,OPC文檔:R3IO:InformationSystem->TwinCAT->TwinCATR3IOADS:InformationSystem->TwinCAT->TwinCATSystem->TwinCATConnectivity
3倡懂宦繹郁劇拉樟械焰嗅淚亂歐葫緬帆撈貪玲抒筑岡管保諧囊稱掏綏熊蛆TwinCAT高級(jí)語言編程接口TwinCAT高級(jí)語言編程接口高級(jí)語言和下位的通訊方式上位用戶界面和BECKHOFF產(chǎn)品通訊方式比較通訊周期:R3IO通訊時(shí)間可以忽略,數(shù)據(jù)交換時(shí)間取決于定時(shí)器,CE試用BECKHOFF提供的TcTimer可以達(dá)到100微秒XP系統(tǒng)最小在1毫秒左右ADS通訊時(shí)間在2-3毫秒左右.但是考慮到ADSServer的響應(yīng)時(shí)間,一個(gè)命令周期可能需要200毫秒系統(tǒng)拓?fù)?R3IO是通過指針直接訪問IO內(nèi)存映像.本地操作(把它當(dāng)成高級(jí)語言編寫的PLC)ADS是網(wǎng)絡(luò)通訊,可以是遠(yuǎn)程訪問Modbus和OPC的性能和ADS在水平以下主要介紹ADS通訊
4壘平臀賒萎倡糖明禍付椿罐啊投勉堯擔(dān)侵佐釉堪諒籠私卒脈亮熏厲誨頹錠TwinCAT高級(jí)語言編程接口TwinCAT高級(jí)語言編程接口通訊方式比較通訊周期:4壘平臀賒萎倡糖明ADS簡(jiǎn)介在BeckhoffTwinCAT系統(tǒng)中,各個(gè)軟件模塊(如TwinCATPLC、TwinCATNC、Windows應(yīng)用程序等)的工作模式類似于硬件設(shè)備,它們能夠獨(dú)立工作。各個(gè)軟件模塊之間的信息交換通過TwinCATADS而完成。ADS(AutomationDeviceSpecification)即自動(dòng)化設(shè)備規(guī)范,它為設(shè)備之間的通訊提供路由。在TwinCATPC和Beckhoff的CX、BX、BC系列控制器中都包含TwinCAT信息路由器。因此各個(gè)ADS設(shè)備之間都能夠交換數(shù)據(jù)和信息。ADS服務(wù)有TwinCAT服務(wù)程序提供,當(dāng)PLC中需要調(diào)用操作系統(tǒng)功能時(shí)也是通過ADS命令來驅(qū)動(dòng)TwinCAT服務(wù)來完成(如文本文件讀寫,獲取系統(tǒng)時(shí)間等)。基于ADS的TwinCAT系統(tǒng)構(gòu)架如下圖所示:
5滬粥癢章稗漾因福際瑰果請(qǐng)誹鼎時(shí)旋奧襯阿莽蝎娛捏河坦蘭妒丫虜妹誤田TwinCAT高級(jí)語言編程接口TwinCAT高級(jí)語言編程接口ADS簡(jiǎn)介在BeckhoffTwinCAT系統(tǒng)中,各個(gè)軟ADS通訊協(xié)議概述ADS協(xié)議處于網(wǎng)絡(luò)通訊協(xié)議的應(yīng)用層。
6應(yīng)用層傳輸層Internet層網(wǎng)絡(luò)接口層TCP/IP模型OSI模型瘍障巷凹直原岔瘓汾酒窩兄盆燥奴踐捆暫臻萬宮浸裴恨園懂慕忱蹦鄭圓務(wù)TwinCAT高級(jí)語言編程接口TwinCAT高級(jí)語言編程接口ADS通訊協(xié)議概述ADS協(xié)議處于網(wǎng)絡(luò)通訊協(xié)議的應(yīng)用層。TwinCATADS設(shè)備標(biāo)識(shí)每臺(tái)TwinCATADS設(shè)備都有各自不同的AdsAmsNetId和AdsPort(端口號(hào)),以相互區(qū)別。AdsAmsNetId是TCP/IP地址的擴(kuò)展,是TwinCATMessageRouter,存在于每臺(tái)TwinCATPC或BeckhoffCX、BX、BC系列控制器中。例如:如果一臺(tái)PC的IP地址是“0”,那么它的AdsAmsNetId就是“0.1.1”。當(dāng)然,也可以對(duì)AdsAmsNetId進(jìn)行修改。每臺(tái)ADS設(shè)備(ADSServer)的AdsPort都各不相同,且固定不變。而ADS客戶端(ADSClient)應(yīng)用程序的AdsPort則是可變的。不同ADS設(shè)備的AdsPort如下圖所示:ADS設(shè)備
AdsPortPC控制器中的PLCRun-timesystem1801Run-timesystem2811Run-timesystem3821Run-timesystem4831自定義任務(wù)(AdditionalTask)AdditionalTask1301AdditionalTask2302BCxxxx控制器中的PLC
800NC
500
7飲威榆咳椅盾奉別墓彰瞻聯(lián)漬日袖芝就嫡指魏鄉(xiāng)護(hù)鄧兜漿倪浩遭跑敖邦券TwinCAT高級(jí)語言編程接口TwinCAT高級(jí)語言編程接口TwinCATADS設(shè)備標(biāo)識(shí)每臺(tái)TwinCATADSADS通訊方式ADS設(shè)備之間的通訊有多種方式,不同方式有不同的特點(diǎn)。一般的ADS通訊(GeneralADSServices) -異步方式(Asynchronous) ADS客戶端向ADS服務(wù)器發(fā)送ADS請(qǐng)求,同時(shí)客戶端繼續(xù)自己的工作。ADS服務(wù)器處理請(qǐng)求后,把響應(yīng)以Call-back函數(shù)方式發(fā)給客戶端。 -通知方式(Notification) ADS客戶端向ADS服務(wù)器發(fā)送ADS請(qǐng)求,ADS服務(wù)器以Call-back函數(shù)的方式不斷向客戶端發(fā)送響應(yīng),直到客戶端取消該請(qǐng)求。這兩種通訊方式的效率高,但需求復(fù)雜的客戶端程序。注意:每個(gè)的端口最多注冊(cè)550個(gè)通知優(yōu)點(diǎn):不會(huì)造成系統(tǒng)堵塞缺點(diǎn):不能確保每次請(qǐng)求都有返回比喻:發(fā)郵件
8奴轟送癰眠淺優(yōu)盅療羔芳消粕翱顧果淡盲肥尿構(gòu)頓袖挾誦臆薩址冀豆略哎TwinCAT高級(jí)語言編程接口TwinCAT高級(jí)語言編程接口ADS通訊方式ADS設(shè)備之間的通訊有多種方式,不同方式有ADS通訊方式特殊的ADS通訊(SpecificADSServices)TwinCATADS設(shè)備和Windows應(yīng)用程序(例如VB、VC應(yīng)用程序等)之間的通訊除了可以采用一般的ADS通訊方式外,還可以采用特殊的通訊方式,即同步通訊方式。-同步方式(Synchronous)ADS客戶端向ADS服務(wù)器發(fā)送ADS請(qǐng)求,在通訊過程中客戶端程序停止執(zhí)行,直到獲得ADS服務(wù)器返回的響應(yīng)。這種通訊方式不需求復(fù)雜的客戶端程序,但其輪循的通訊方式給系統(tǒng)帶來比較大的負(fù)載,因此通訊效率較低。優(yōu)點(diǎn):能即時(shí)返回結(jié)果缺點(diǎn):如果通訊故障會(huì)造成系統(tǒng)堵塞比喻:通電話
9磊茬遇健永柳黨碉潤(rùn)懾勤匠犯挑桓淚宮反師洪厄位芒船犢手約螞候禽肥疼TwinCAT高級(jí)語言編程接口TwinCAT高級(jí)語言編程接口ADS通訊方式特殊的ADS通訊(SpecificADSADSAPI為方便各種計(jì)算機(jī)高級(jí)語言及其環(huán)境使用ADS通訊,BeckhoffTwinCAT提供相如下組件:?ADS.NETComponent 適用.NET平臺(tái),VB.NET,C#等?ADS-OCX(ActiveXCOM控件) 適用于VisualBasic,VisualC++,Delphi等.?ADS-DLL 適用于VisualC++等.?ADS-Script-DLL 適用于VBScript,Jscript等腳本,創(chuàng)建B/S架構(gòu)的應(yīng)用.?JAVADLL適用于JAVA語言。?“PlcSystem.lib”PLC庫ADS設(shè)備可以通過據(jù)此和其他ADS設(shè)備以及Windows進(jìn)行通訊。
10澡刷謗氛審棋姚攤蒂旺瑞銷誓針泌清淡懼姜吹氮眨灣沾度呢惕哀宙捷芭并TwinCAT高級(jí)語言編程接口TwinCAT高級(jí)語言編程接口ADSAPI為方便各種計(jì)算機(jī)高級(jí)語言及其環(huán)境使用ADS通訊ADS訪問變量方式TwinCATADS訪問變量有兩種方式:1.地址方式一個(gè)PLC變量的地址由兩部分組成:GroupIndex和OffsetIndex:GroupIndex一般用于區(qū)別寄存器類型,在TwinCATADS設(shè)備中為常量,具體內(nèi)容可以參考InformationSystem(后附常用的GroupIndex值)。OffsetIndex為變量的偏移地址,在PLC中為該變量的地址。2.變量名方式在TwinCATADS設(shè)備中每個(gè)變量都有一個(gè)句柄(Handle)。適用變量名訪問變量首先需要得到該變量的句柄。(不同的高級(jí)語言方式略有不同)
11堿清它絢醚行澡給齡搔待蹦醇嗚翁歌傍迢蕩謀翹床盅兜那訃巍躍諧汕阜唬TwinCAT高級(jí)語言編程接口TwinCAT高級(jí)語言編程接口ADS訪問變量方式TwinCATADS訪問變量有兩種方式ADS組件庫文件組成簡(jiǎn)介
12ADS組件庫集成在TwinCAT軟件中,安裝任何版本的TwinCAT軟件都包含ADS通訊組件,如果用戶希望在沒有安裝TwinCAT軟件的計(jì)算機(jī)適用ADS通訊組件可以安裝Supplement中的TwinCAT_ADS_Communication_Library此為免費(fèi)產(chǎn)品。除需要復(fù)制到Windows/System32目錄外絕大部分相關(guān)文件可以在TwinCAT安裝目錄找到。假設(shè)TwinCAT安裝路徑為C:\TwinCAT文件描述C:\TwinCAT\ADSApi\TcAdsDll\ADSDLLC:\TwinCAT\ADSApi\.NET.NET組件(支持三個(gè)版本的Framework)C:\TwinCAT\ADSApi\AdsToJavaADSJAVADLLC:\TwinCAT\ADSApi\CompactFramework.NETCompactFramework組件C:\TwinCAT\ADSApi\LibVS97LibC:\TwinCAT\ADSApi\TcAdsWebServiceWebService組件C:\WINDOWS\system32\AdsOcx.ocxADSOCXC:\TwinCAT\TcScript.dllADS-Script-DLL如果可以建議用戶最好用TwinCATCP,ADS組件出了配置稍微麻煩一些外,對(duì)于多個(gè)客戶端并行通訊業(yè)有局限性譏命本隙桿螺語鐳翟擦忽阿捌代仟至法姻背兜升臣藕聾悉穢幅紋碧蟄革瑟TwinCAT高級(jí)語言編程接口TwinCAT高級(jí)語言編程接口ADS組件庫文件組成簡(jiǎn)介12ADS組件庫Ads組件調(diào)用過程簡(jiǎn)介
13.NET調(diào)用流程新建工程添加引用TwinCAT.Ads.dll定義TcAdsClient對(duì)象
private
TcAdsClientadsClient;初始化TcAdsClient對(duì)象adsClient=newTcAdsClient();adsClient.Connect(801);
通過變量名取得變量的句柄注冊(cè)DeviceNotification事件用于讀寫變量AddDeviceNotification讀寫變量接受處理返回結(jié)果釋放資源矛螞盅氣攫毯雁媽之隊(duì)鴨斗紀(jì)抑閡半近腥雄骯寐煥瓜瓶妝師濕淮值奈升署TwinCAT高級(jí)語言編程接口TwinCAT高級(jí)語言編程接口Ads組件調(diào)用過程簡(jiǎn)介13.NET調(diào)用ADS.NET組件通訊方式
14直接封裝TcAdsDll.Dll(ADSClient工作模式)按照AMS協(xié)議組件Socket數(shù)據(jù)包直接通過TCP系統(tǒng)通訊(ADSServer)癢鎮(zhèn)馭樟釣餐纂辦栽千寅搗速侖囪刃慫慕沏礫估早膘脯糕簽蕾罪鑲督鍬杠TwinCAT高級(jí)語言編程接口TwinCAT高級(jí)語言編程接口ADS.NET組件通訊方式14直接封裝Ads組件調(diào)用過程簡(jiǎn)介C++在VisualC++中進(jìn)行鏈接和程序開發(fā)時(shí)所需要的文件:TcAdsDll.dll–動(dòng)態(tài)鏈接庫TcAdsDll.lib–使用TcAdsDll.dll的函數(shù)庫TcAdsApi.h–聲明ADS功能的頭文件TcAdsDef.h–聲明結(jié)構(gòu)和常數(shù)的頭文件主要接口:AdsPortOpen:建立TwinCAT信息路由器連接(通訊口)。AdsPortClose:關(guān)閉TwinCAT信息路由器的連接(通訊口)。AdsGetLocalAddress:返回本地NetId和端口號(hào)AdsSyncWriteReq:同步寫數(shù)據(jù)到一個(gè)ADS設(shè)備AdsSyncReadReq:從ADS服務(wù)器中同步讀數(shù)據(jù)。AdsSyncReadWriteReq:同步寫入數(shù)據(jù)到ADS服務(wù)器中并從ADS設(shè)備接收返回的數(shù)據(jù)。AdsSyncReadStateReq:從ADS服務(wù)器中讀ADS狀態(tài)和設(shè)備狀態(tài)。AdsSyncAddDeviceNotificationReq:通知在ADS服務(wù)器中進(jìn)行定義(如PLC)。當(dāng)某個(gè)事件發(fā)生時(shí),該功能(回調(diào)功能)在ADS客戶端進(jìn)行調(diào)用(C程序)。AdsSyncDelDeviceNotificationReq:從ADS服務(wù)器中刪除以前定義的通知。
15徽嫌姐勾遞巖蹦膚苛可沼敞論捏奴緊椿孿搬舷履驟咸訝暮愿株嚏落層訪剩TwinCAT高級(jí)語言編程接口TwinCAT高級(jí)語言編程接口Ads組件調(diào)用過程簡(jiǎn)介C++15徽嫌姐輔助工具-TwinCATADSMonitorTwinCATADSMonitor可以抓取ADS通訊數(shù)據(jù)包
16ADS數(shù)據(jù)結(jié)構(gòu)幀數(shù)據(jù)通訊數(shù)據(jù)幀記錄基黎遭逾契滓瓶弧溪竟琺岳卿奔權(quán)緝跳嘛缽捻康帥挾翻昆元著汛報(bào)煩壽懲TwinCAT高級(jí)語言編程接口TwinCAT高級(jí)語言編程接口輔助工具-TwinCATADSMonitorTwinC輔助工具-WiresharkPortable
17可以抓取網(wǎng)絡(luò)適配器上的數(shù)據(jù),包括ADSEtherCAT等,但不能抓取本地ADS數(shù)據(jù)包酋臆姨咒欽飲筐攀捧抑凍臣澈懸泳惦刀閩輝胡吵氖朋脅歧疏脫寂兄咆?cái)?shù)鴉TwinCAT高級(jí)語言編程接口TwinCAT高級(jí)語言編程接口輔助工具-WiresharkPortable輔助工具-仿真器1.下載文件:以下路徑為FTp路徑()/Software/embPC-Control/CE/Solutions/CX_Emulator/emulator.zip(CE仿真器英文)/Software/embPC-Control/CE/Solutions/SDK/BeckhoffHMI500V1.3SDK.msi/Software/embPC-Control/CE/Solutions/VS_NET2005/CE5_DbgHlp.zip2.仿真器安裝:a.安裝MicrosoftWindowsCE5.0Emulator.msi需要連接互聯(lián)網(wǎng)b.安裝完仿真器,再安裝虛擬網(wǎng)卡驅(qū)動(dòng)netsvwrap.msi3.配置:a.安裝后修改StartEmulator_DE.bat文件,將參數(shù)中的/Ethernet的MAC改為本地網(wǎng)卡的實(shí)際MAC地址b.參數(shù)vmid后的GUID值做為保存映像是的文件夾名稱。4.設(shè)置仿真器和VS.net集成環(huán)境:WindowsCE5的模擬器是基于x86的,VS2005的DeviceEmulator是基于ARM的,VS2005開發(fā)環(huán)境無法和WinCE模擬器進(jìn)行集成進(jìn)行遠(yuǎn)程調(diào)試。但是可以通過下面的方式實(shí)現(xiàn)集成:1).將CE5_DbgHlp.zip壓縮包文件解壓復(fù)制仿真器的\harddisk\system路徑下(實(shí)際的控制器新版本系統(tǒng)中這些文件已經(jīng)存在)2).運(yùn)行Conmanclient2.exe
18括邪聚洱慎名宿蔚論喇膳曹冤翠班猾徑疤草續(xù)青淀崩睡鋅丹漆桑安夠氖柞TwinCAT高級(jí)語言編程接口TwinCAT高級(jí)語言編程接口輔助工具-仿真器1.下載文件:18括邪聚輔助工具-仿真器(續(xù))3).配置VS2005開發(fā)環(huán)境:a.轉(zhuǎn)到“Tools-->options-->devicetools-->devices”b.選擇WindowsCE5.0設(shè)備,點(diǎn)擊“屬性(properties)”按鈕c.在WindowsCE5.0設(shè)備屬性對(duì)話框點(diǎn)擊“配置(configure)”按鈕d.在TCP/IP配置對(duì)話框選定“使用特定的IP(usespecificIPaddress)”,輸入仿真器的IP地址。下面就可以DebugCE應(yīng)用程序,選擇部署到WindowsCE5.0。如果部署仍然失敗,運(yùn)行仿真器\harddisk\system路徑下的cMaccept.exe文件。測(cè)試正常后保存仿真器的設(shè)置,載關(guān)閉時(shí)選擇SaveSate而不是TrueOff,這樣下次啟動(dòng)仿真器就不需要重新設(shè)置仿真器。如果想刪除保存的文件,轉(zhuǎn)到“我的文檔\MyVirtualMachines下,將上文提到的在StartEmulator_DE.bat設(shè)置的vmid值為名稱的文件夾刪除即可。如果在具體操作用什么問題,您可以隨時(shí)和我們聯(lián)系。vs2008注意事項(xiàng):用如下文件代替CE5_DbgHlp.zip內(nèi)的文件C:\ProgramFiles\CommonFiles\MicrosoftShared\CoreCon\1.0\Target\wce400\x86
19讓忍杉俄邢泣焊親窺余毆培渠硫坑喇瞬憤投囊毒撫顛伍寢誘啪柯續(xù)臆壹籃TwinCAT高級(jí)語言編程接口TwinCAT高級(jí)語言編程接口輔助工具-仿真器(續(xù))3).配置VS2005開發(fā)環(huán)境:輔助工具-仿真器(續(xù))最近剛剛發(fā)布了基于MicrosoftVirtualPC的WinCE6.0仿真器,能夠更真實(shí)的模擬我們的硬件控制器。
20睬戶纏詢撩畝蓖砒灌烘神悄巷鴦?dòng)X梭愈板褲踢墟擋習(xí)悸窺辣班紗婿壞長(zhǎng)嫌TwinCAT高級(jí)語言編程接口TwinCAT高級(jí)語言編程接口輔助工具-仿真器(續(xù))最近剛剛發(fā)布了基于MicrosoftPLC運(yùn)行狀態(tài)檢測(cè)1.HMI啟動(dòng)是需要檢測(cè)PLCServer的啟動(dòng)狀態(tài)2.在運(yùn)行中檢測(cè)控制器的狀態(tài)舉例:VS.NET:AmsRouterNotificationAdsStateChanged注:此兩個(gè)事件只針對(duì)本地通訊有用(客戶端和服務(wù)器端在同一個(gè)PC上)
21溯僵螞叛仲掙腿芹南狼瞇掖繭脹牢情召冒訊迂吏蓋五門竭特膳輩犀相咬懲TwinCAT高級(jí)語言編程接口TwinCAT高級(jí)語言編程接口PLC運(yùn)行狀態(tài)檢測(cè)1.HMI啟動(dòng)是需要檢測(cè)PLCServe常用的GroupIndex
22GroupIndex值描述0x00004020M寄存器(用%M聲明)0x00004021MX寄存器(用MX聲明)0x0000F020I寄存器(用%I聲明)0x0000F021IX寄存器(用IX聲明)0x0000F030Q寄存器(用%Q聲明)0x0000F031QX寄存器(用QX聲明)0x0000F003取變量的句柄0x0000F005通過變量句柄訪問變量值0x0000F006釋放句柄1.對(duì)于MX,IX,QX寄存器的偏移地址的單位是“位”,而不是字節(jié),計(jì)算地址需要注意2.M寄存器偏移地址最大值為0x0000FFFF,而MX,I,IX,Q,QX偏移地址最大值為0xFFFFFFFF。3.上表后三個(gè)主要用于C++語言,其他高級(jí)語言已經(jīng)封裝成專有方法,不需直接調(diào)用。鞍脂鄖匣阮擺皇倫加佃曉嫡平庫戀塘湘控下瞞疑阻可岳食糾岳刷捌欺豹雅TwinCAT高級(jí)語言編程接口TwinCAT高級(jí)語言編程接口常用的GroupIndex22GroupTwinCATSystemCOMObject可以用來遠(yuǎn)程控制TwinCATService的停止,啟動(dòng)等操作
23催杏攙喧扯勇傲番坤備夷浪材頗橡娛秦雖讓渾殼橫亮班甘羹藏佩姑綿既抖TwinCAT高級(jí)語言編程接口TwinCAT高級(jí)語言編程接口TwinCATSystemCOMObject可以用來遠(yuǎn)TwinCATSystemManagerAutomationInterface可以實(shí)現(xiàn)SystemManager的部分功能,如掃描IO,修改鏈接,激活配置等。實(shí)際應(yīng)用舉例:一鍵式系統(tǒng)更新:通過TwinCATSystemManagerAutomationInterface自動(dòng)更新系統(tǒng)配置信息(tsm文件)通過PLCControlCommandLine自動(dòng)更新PLC程序(PRO)
24粳紊商膜畏咽存般爵讀審獺秉酶億命梗澆侵辯氈詭酮刃疥記侯峭犁苦贅懂TwinCAT高級(jí)語言編程接口TwinCAT高級(jí)語言編程接口TwinCATSystemManagerAutomatTwinCATADSModularDeviceProfile基于ETG組織的ModularDeviceProfile規(guī)范,可以對(duì)硬件等系統(tǒng)模塊進(jìn)行監(jiān)控和設(shè)置,比如顯示分辨率,網(wǎng)卡的IP地址等。具有和PLC和高級(jí)語言接口有效:WindowsCE6.0(imageversion3.08orhigher)WindowsXPe(imageversion2.2orhigher)
25悟俯冷奠儀浪嬸胡君冤績(jī)糖硫語仿梧藹豺友馳市起喇延蒙肌建燕惦視鴨刃TwinCAT高級(jí)語言編程接口TwinCAT高級(jí)語言編程接口TwinCATADSModularDeviceProWinCE下設(shè)置應(yīng)用程序自啟動(dòng)的幾種方法一、利用WinCE的機(jī)制:1.修改系統(tǒng)Init入口:運(yùn)行注冊(cè)表編輯器,開始(Start)-運(yùn)行(Run)輸入“REGEDIT”然后確定,即打開注冊(cè)表。定位到[HKEY_LOCAL_MACHINE\init]然后添加新項(xiàng)。比如:"Launch99"="app.exe"
"Depend99"=hex:14001e00320050005a00這個(gè)是設(shè)定啟動(dòng)順序,launch后面的數(shù)字越大的越是后啟動(dòng),Depend90后面的指定依賴項(xiàng),為16進(jìn)制,上面的語句表明依賴項(xiàng)為launch20,launch30,launch60,launch80,launch90定義的項(xiàng)目。device.exe和launch30中定義的gwes.exe,注意Launch后面的數(shù)字范圍為0到99,此范圍之外的將不會(huì)有效果。2.放在Windows啟動(dòng)中。默認(rèn)windows的啟動(dòng)文件夾被指向到windows下的startup文件夾,這個(gè)文件夾不是CF上的物理文件夾,所以不能保存用戶改動(dòng)的東西,如果需要用到這個(gè)文件夾,需要修改注冊(cè)表將這個(gè)系統(tǒng)文件夾位置修改到指向CF卡(也就是HardDisk)上的一個(gè)文件夾。定位到HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\ShellFolders修改Startup的值為HardDisk上的一個(gè)文件夾,然后將應(yīng)用程序的快捷方式放到這個(gè)文件夾,系統(tǒng)啟動(dòng)時(shí)即會(huì)自動(dòng)運(yùn)行。相當(dāng)于向開始菜單的啟動(dòng)中添加項(xiàng)目。
26涉烈星柴踴另朋綴甭借辮進(jìn)黃泰抑下鷹糞私抬咎鄲散島夏耐震賣姥喝他熬TwinCAT高級(jí)語言編程接口TwinCAT高級(jí)語言編程接口WinCE下設(shè)置應(yīng)用程序自啟動(dòng)的幾種方法一、利用WinCE的WinCE下設(shè)置應(yīng)用程序自啟動(dòng)的幾種方法3.修改Autoexec.cmd文件這個(gè)文件位于HardDisk\System下,這個(gè)文件就是一個(gè)DOS下的批處理文件,BeckhoffCE啟動(dòng)時(shí)會(huì)自動(dòng)運(yùn)行\(zhòng)HardDisk\System\startup.exe程序,這個(gè)程序會(huì)查找HardDisk\System下的Autoexec.cmd文件,如果有則運(yùn)行它,因此將要自定運(yùn)行的命令寫入這個(gè)文件,也會(huì)達(dá)到自動(dòng)運(yùn)行的效果,在命令前加上start關(guān)鍵字,則批處理程序運(yùn)行完dos窗口會(huì)自動(dòng)關(guān)閉。如果要關(guān)閉這個(gè)只需要將autoexec.cmd改名。以上三種方法都是利用WinCE系統(tǒng)機(jī)制實(shí)現(xiàn)自動(dòng)運(yùn)行應(yīng)用程序的目的,用這種方法可能會(huì)產(chǎn)生應(yīng)用程序比PLCServer先運(yùn)行起來,如果應(yīng)用程序中存在和PLCServer通過的過程,如果HMI先運(yùn)行起來可能會(huì)造成初始化失敗,因此用這種方法啟動(dòng)應(yīng)用程序,需要在應(yīng)用程序入口加上檢測(cè)PLC運(yùn)行狀態(tài)的過程。二、利用PLC語言來運(yùn)行用戶定制的HMI程序這種是利用PLC庫中的NT_StartProcess功能塊,在PLC加載完,執(zhí)行HMI應(yīng)用程序,這樣可以保證啟動(dòng)的先后順序。三,使用WinCE6Image內(nèi)部集成的StartManager工具
27貓暈絲清珊孔曬還故煌部昆墻翰奔?xì)ゑR浦催峭祥堰麥寒羹斗室喊黍耘財(cái)肆TwinCAT高級(jí)語言編程接口TwinCAT高級(jí)語言編程接口WinCE下設(shè)置應(yīng)用程序自啟動(dòng)的幾種方法3.修改AutoexOPCClient-和BeckhoffOPCServer通訊大體步驟:1.PLC程序添加OPC相關(guān)屬性,詳細(xì)參考InformationSystem2.配置OPCServer:設(shè)置AutoCfg為83.下載:OPCFoundationwebsite下載OpcNetApi.dll,OpcNetApi.Com.dll(具有成員資格的組織才可以下載)4.在.net中編程實(shí)現(xiàn)OPCClient的功能枚舉OPC服務(wù)器:
privateOpc.Server[]servers;servers=m_discovery.GetAvailableServers(Specification.COM_DA_20,"",null);枚舉變量:通過遞歸調(diào)用m_server.Browse來枚舉OPC中的變量
28育搭隋敦翌思面茹爆枝串網(wǎng)魄苑緯療澄咸紊孿沿筐邀樹撼進(jìn)鱗圭鉤夯婿羞TwinCAT高級(jí)語言編程接口TwinCAT高級(jí)語言編程接口OPCClient-和BeckhoffOPCServeTwinCAT高級(jí)語言編程接口
29尚德明決財(cái)水蕪慶疊船溺寇媚誰堂相楔尸體醚江乞抉止構(gòu)蹄嘎桓占袋嫉封取堅(jiān)姿TwinCAT高級(jí)語言編程接口TwinCAT高級(jí)語言編程接口TwinCAT高級(jí)語言編程接口1尚德明決TwinCATSoftPLC工業(yè)軟PLC分類:實(shí)時(shí)運(yùn)行核:使用操作系統(tǒng)的實(shí)時(shí)性自主研發(fā)實(shí)時(shí)核編程語言PLC程序執(zhí)行機(jī)制和Windows應(yīng)用程序的執(zhí)行機(jī)制不同,Windows應(yīng)用程序是通過消息機(jī)制觸發(fā),而PLC程序的執(zhí)行時(shí)通過一個(gè)定時(shí)器自動(dòng)定期觸發(fā)。因此對(duì)于軟PLC來說,定時(shí)器的精準(zhǔn)直接影響PLC邏輯執(zhí)行的準(zhǔn)確性和效率。自主開發(fā)的實(shí)時(shí)核和操作系統(tǒng)依賴性小,更穩(wěn)定,更準(zhǔn)確。目前世界上主要有三家公司開發(fā)了實(shí)時(shí)核:Beckhoff,IntervalZero,TenAsys。目前我們公司的實(shí)時(shí)核還不對(duì)外開放,TwinCAT3以后將對(duì)外開放,對(duì)外開放就意味可以使用高級(jí)語言來編寫PLC程序。目前TwinCAT系統(tǒng)中想使用高級(jí)語言來進(jìn)行控制只能使用操作系統(tǒng)的實(shí)時(shí)系統(tǒng)通過R3IO來實(shí)現(xiàn)另外一種軟PLC。:編程語言計(jì)算機(jī)高級(jí)語言(如C++)(R3IO)IEC61131-3國際編程標(biāo)準(zhǔn)
30撐秘廈費(fèi)痕郎蘊(yùn)獅綠先飛妊腑鎮(zhèn)郝嘔鴻方杠泅采拔球煎幣篷又晦吸據(jù)攬忽TwinCAT高級(jí)語言編程接口TwinCAT高級(jí)語言編程接口TwinCATSoftPLC工業(yè)軟PLC分類:高級(jí)語言和下位的通訊方式上位用戶界面和BECKHOFF產(chǎn)品通訊主要方式:實(shí)時(shí)非遠(yuǎn)程:R3IO非實(shí)時(shí)遠(yuǎn)程:ADS通訊,Modbus,OPC文檔:R3IO:InformationSystem->TwinCAT->TwinCATR3IOADS:InformationSystem->TwinCAT->TwinCATSystem->TwinCATConnectivity
31倡懂宦繹郁劇拉樟械焰嗅淚亂歐葫緬帆撈貪玲抒筑岡管保諧囊稱掏綏熊蛆TwinCAT高級(jí)語言編程接口TwinCAT高級(jí)語言編程接口高級(jí)語言和下位的通訊方式上位用戶界面和BECKHOFF產(chǎn)品通訊方式比較通訊周期:R3IO通訊時(shí)間可以忽略,數(shù)據(jù)交換時(shí)間取決于定時(shí)器,CE試用BECKHOFF提供的TcTimer可以達(dá)到100微秒XP系統(tǒng)最小在1毫秒左右ADS通訊時(shí)間在2-3毫秒左右.但是考慮到ADSServer的響應(yīng)時(shí)間,一個(gè)命令周期可能需要200毫秒系統(tǒng)拓?fù)?R3IO是通過指針直接訪問IO內(nèi)存映像.本地操作(把它當(dāng)成高級(jí)語言編寫的PLC)ADS是網(wǎng)絡(luò)通訊,可以是遠(yuǎn)程訪問Modbus和OPC的性能和ADS在水平以下主要介紹ADS通訊
32壘平臀賒萎倡糖明禍付椿罐啊投勉堯擔(dān)侵佐釉堪諒籠私卒脈亮熏厲誨頹錠TwinCAT高級(jí)語言編程接口TwinCAT高級(jí)語言編程接口通訊方式比較通訊周期:4壘平臀賒萎倡糖明ADS簡(jiǎn)介在BeckhoffTwinCAT系統(tǒng)中,各個(gè)軟件模塊(如TwinCATPLC、TwinCATNC、Windows應(yīng)用程序等)的工作模式類似于硬件設(shè)備,它們能夠獨(dú)立工作。各個(gè)軟件模塊之間的信息交換通過TwinCATADS而完成。ADS(AutomationDeviceSpecification)即自動(dòng)化設(shè)備規(guī)范,它為設(shè)備之間的通訊提供路由。在TwinCATPC和Beckhoff的CX、BX、BC系列控制器中都包含TwinCAT信息路由器。因此各個(gè)ADS設(shè)備之間都能夠交換數(shù)據(jù)和信息。ADS服務(wù)有TwinCAT服務(wù)程序提供,當(dāng)PLC中需要調(diào)用操作系統(tǒng)功能時(shí)也是通過ADS命令來驅(qū)動(dòng)TwinCAT服務(wù)來完成(如文本文件讀寫,獲取系統(tǒng)時(shí)間等)?;贏DS的TwinCAT系統(tǒng)構(gòu)架如下圖所示:
33滬粥癢章稗漾因福際瑰果請(qǐng)誹鼎時(shí)旋奧襯阿莽蝎娛捏河坦蘭妒丫虜妹誤田TwinCAT高級(jí)語言編程接口TwinCAT高級(jí)語言編程接口ADS簡(jiǎn)介在BeckhoffTwinCAT系統(tǒng)中,各個(gè)軟ADS通訊協(xié)議概述ADS協(xié)議處于網(wǎng)絡(luò)通訊協(xié)議的應(yīng)用層。
34應(yīng)用層傳輸層Internet層網(wǎng)絡(luò)接口層TCP/IP模型OSI模型瘍障巷凹直原岔瘓汾酒窩兄盆燥奴踐捆暫臻萬宮浸裴恨園懂慕忱蹦鄭圓務(wù)TwinCAT高級(jí)語言編程接口TwinCAT高級(jí)語言編程接口ADS通訊協(xié)議概述ADS協(xié)議處于網(wǎng)絡(luò)通訊協(xié)議的應(yīng)用層。TwinCATADS設(shè)備標(biāo)識(shí)每臺(tái)TwinCATADS設(shè)備都有各自不同的AdsAmsNetId和AdsPort(端口號(hào)),以相互區(qū)別。AdsAmsNetId是TCP/IP地址的擴(kuò)展,是TwinCATMessageRouter,存在于每臺(tái)TwinCATPC或BeckhoffCX、BX、BC系列控制器中。例如:如果一臺(tái)PC的IP地址是“0”,那么它的AdsAmsNetId就是“0.1.1”。當(dāng)然,也可以對(duì)AdsAmsNetId進(jìn)行修改。每臺(tái)ADS設(shè)備(ADSServer)的AdsPort都各不相同,且固定不變。而ADS客戶端(ADSClient)應(yīng)用程序的AdsPort則是可變的。不同ADS設(shè)備的AdsPort如下圖所示:ADS設(shè)備
AdsPortPC控制器中的PLCRun-timesystem1801Run-timesystem2811Run-timesystem3821Run-timesystem4831自定義任務(wù)(AdditionalTask)AdditionalTask1301AdditionalTask2302BCxxxx控制器中的PLC
800NC
500
35飲威榆咳椅盾奉別墓彰瞻聯(lián)漬日袖芝就嫡指魏鄉(xiāng)護(hù)鄧兜漿倪浩遭跑敖邦券TwinCAT高級(jí)語言編程接口TwinCAT高級(jí)語言編程接口TwinCATADS設(shè)備標(biāo)識(shí)每臺(tái)TwinCATADSADS通訊方式ADS設(shè)備之間的通訊有多種方式,不同方式有不同的特點(diǎn)。一般的ADS通訊(GeneralADSServices) -異步方式(Asynchronous) ADS客戶端向ADS服務(wù)器發(fā)送ADS請(qǐng)求,同時(shí)客戶端繼續(xù)自己的工作。ADS服務(wù)器處理請(qǐng)求后,把響應(yīng)以Call-back函數(shù)方式發(fā)給客戶端。 -通知方式(Notification) ADS客戶端向ADS服務(wù)器發(fā)送ADS請(qǐng)求,ADS服務(wù)器以Call-back函數(shù)的方式不斷向客戶端發(fā)送響應(yīng),直到客戶端取消該請(qǐng)求。這兩種通訊方式的效率高,但需求復(fù)雜的客戶端程序。注意:每個(gè)的端口最多注冊(cè)550個(gè)通知優(yōu)點(diǎn):不會(huì)造成系統(tǒng)堵塞缺點(diǎn):不能確保每次請(qǐng)求都有返回比喻:發(fā)郵件
36奴轟送癰眠淺優(yōu)盅療羔芳消粕翱顧果淡盲肥尿構(gòu)頓袖挾誦臆薩址冀豆略哎TwinCAT高級(jí)語言編程接口TwinCAT高級(jí)語言編程接口ADS通訊方式ADS設(shè)備之間的通訊有多種方式,不同方式有ADS通訊方式特殊的ADS通訊(SpecificADSServices)TwinCATADS設(shè)備和Windows應(yīng)用程序(例如VB、VC應(yīng)用程序等)之間的通訊除了可以采用一般的ADS通訊方式外,還可以采用特殊的通訊方式,即同步通訊方式。-同步方式(Synchronous)ADS客戶端向ADS服務(wù)器發(fā)送ADS請(qǐng)求,在通訊過程中客戶端程序停止執(zhí)行,直到獲得ADS服務(wù)器返回的響應(yīng)。這種通訊方式不需求復(fù)雜的客戶端程序,但其輪循的通訊方式給系統(tǒng)帶來比較大的負(fù)載,因此通訊效率較低。優(yōu)點(diǎn):能即時(shí)返回結(jié)果缺點(diǎn):如果通訊故障會(huì)造成系統(tǒng)堵塞比喻:通電話
37磊茬遇健永柳黨碉潤(rùn)懾勤匠犯挑桓淚宮反師洪厄位芒船犢手約螞候禽肥疼TwinCAT高級(jí)語言編程接口TwinCAT高級(jí)語言編程接口ADS通訊方式特殊的ADS通訊(SpecificADSADSAPI為方便各種計(jì)算機(jī)高級(jí)語言及其環(huán)境使用ADS通訊,BeckhoffTwinCAT提供相如下組件:?ADS.NETComponent 適用.NET平臺(tái),VB.NET,C#等?ADS-OCX(ActiveXCOM控件) 適用于VisualBasic,VisualC++,Delphi等.?ADS-DLL 適用于VisualC++等.?ADS-Script-DLL 適用于VBScript,Jscript等腳本,創(chuàng)建B/S架構(gòu)的應(yīng)用.?JAVADLL適用于JAVA語言。?“PlcSystem.lib”PLC庫ADS設(shè)備可以通過據(jù)此和其他ADS設(shè)備以及Windows進(jìn)行通訊。
38澡刷謗氛審棋姚攤蒂旺瑞銷誓針泌清淡懼姜吹氮眨灣沾度呢惕哀宙捷芭并TwinCAT高級(jí)語言編程接口TwinCAT高級(jí)語言編程接口ADSAPI為方便各種計(jì)算機(jī)高級(jí)語言及其環(huán)境使用ADS通訊ADS訪問變量方式TwinCATADS訪問變量有兩種方式:1.地址方式一個(gè)PLC變量的地址由兩部分組成:GroupIndex和OffsetIndex:GroupIndex一般用于區(qū)別寄存器類型,在TwinCATADS設(shè)備中為常量,具體內(nèi)容可以參考InformationSystem(后附常用的GroupIndex值)。OffsetIndex為變量的偏移地址,在PLC中為該變量的地址。2.變量名方式在TwinCATADS設(shè)備中每個(gè)變量都有一個(gè)句柄(Handle)。適用變量名訪問變量首先需要得到該變量的句柄。(不同的高級(jí)語言方式略有不同)
39堿清它絢醚行澡給齡搔待蹦醇嗚翁歌傍迢蕩謀翹床盅兜那訃巍躍諧汕阜唬TwinCAT高級(jí)語言編程接口TwinCAT高級(jí)語言編程接口ADS訪問變量方式TwinCATADS訪問變量有兩種方式ADS組件庫文件組成簡(jiǎn)介
40ADS組件庫集成在TwinCAT軟件中,安裝任何版本的TwinCAT軟件都包含ADS通訊組件,如果用戶希望在沒有安裝TwinCAT軟件的計(jì)算機(jī)適用ADS通訊組件可以安裝Supplement中的TwinCAT_ADS_Communication_Library此為免費(fèi)產(chǎn)品。除需要復(fù)制到Windows/System32目錄外絕大部分相關(guān)文件可以在TwinCAT安裝目錄找到。假設(shè)TwinCAT安裝路徑為C:\TwinCAT文件描述C:\TwinCAT\ADSApi\TcAdsDll\ADSDLLC:\TwinCAT\ADSApi\.NET.NET組件(支持三個(gè)版本的Framework)C:\TwinCAT\ADSApi\AdsToJavaADSJAVADLLC:\TwinCAT\ADSApi\CompactFramework.NETCompactFramework組件C:\TwinCAT\ADSApi\LibVS97LibC:\TwinCAT\ADSApi\TcAdsWebServiceWebService組件C:\WINDOWS\system32\AdsOcx.ocxADSOCXC:\TwinCAT\TcScript.dllADS-Script-DLL如果可以建議用戶最好用TwinCATCP,ADS組件出了配置稍微麻煩一些外,對(duì)于多個(gè)客戶端并行通訊業(yè)有局限性譏命本隙桿螺語鐳翟擦忽阿捌代仟至法姻背兜升臣藕聾悉穢幅紋碧蟄革瑟TwinCAT高級(jí)語言編程接口TwinCAT高級(jí)語言編程接口ADS組件庫文件組成簡(jiǎn)介12ADS組件庫Ads組件調(diào)用過程簡(jiǎn)介
41.NET調(diào)用流程新建工程添加引用TwinCAT.Ads.dll定義TcAdsClient對(duì)象
private
TcAdsClientadsClient;初始化TcAdsClient對(duì)象adsClient=newTcAdsClient();adsClient.Connect(801);
通過變量名取得變量的句柄注冊(cè)DeviceNotification事件用于讀寫變量AddDeviceNotification讀寫變量接受處理返回結(jié)果釋放資源矛螞盅氣攫毯雁媽之隊(duì)鴨斗紀(jì)抑閡半近腥雄骯寐煥瓜瓶妝師濕淮值奈升署TwinCAT高級(jí)語言編程接口TwinCAT高級(jí)語言編程接口Ads組件調(diào)用過程簡(jiǎn)介13.NET調(diào)用ADS.NET組件通訊方式
42直接封裝TcAdsDll.Dll(ADSClient工作模式)按照AMS協(xié)議組件Socket數(shù)據(jù)包直接通過TCP系統(tǒng)通訊(ADSServer)癢鎮(zhèn)馭樟釣餐纂辦栽千寅搗速侖囪刃慫慕沏礫估早膘脯糕簽蕾罪鑲督鍬杠TwinCAT高級(jí)語言編程接口TwinCAT高級(jí)語言編程接口ADS.NET組件通訊方式14直接封裝Ads組件調(diào)用過程簡(jiǎn)介C++在VisualC++中進(jìn)行鏈接和程序開發(fā)時(shí)所需要的文件:TcAdsDll.dll–動(dòng)態(tài)鏈接庫TcAdsDll.lib–使用TcAdsDll.dll的函數(shù)庫TcAdsApi.h–聲明ADS功能的頭文件TcAdsDef.h–聲明結(jié)構(gòu)和常數(shù)的頭文件主要接口:AdsPortOpen:建立TwinCAT信息路由器連接(通訊口)。AdsPortClose:關(guān)閉TwinCAT信息路由器的連接(通訊口)。AdsGetLocalAddress:返回本地NetId和端口號(hào)AdsSyncWriteReq:同步寫數(shù)據(jù)到一個(gè)ADS設(shè)備AdsSyncReadReq:從ADS服務(wù)器中同步讀數(shù)據(jù)。AdsSyncReadWriteReq:同步寫入數(shù)據(jù)到ADS服務(wù)器中并從ADS設(shè)備接收返回的數(shù)據(jù)。AdsSyncReadStateReq:從ADS服務(wù)器中讀ADS狀態(tài)和設(shè)備狀態(tài)。AdsSyncAddDeviceNotificationReq:通知在ADS服務(wù)器中進(jìn)行定義(如PLC)。當(dāng)某個(gè)事件發(fā)生時(shí),該功能(回調(diào)功能)在ADS客戶端進(jìn)行調(diào)用(C程序)。AdsSyncDelDeviceNotificationReq:從ADS服務(wù)器中刪除以前定義的通知。
43徽嫌姐勾遞巖蹦膚苛可沼敞論捏奴緊椿孿搬舷履驟咸訝暮愿株嚏落層訪剩TwinCAT高級(jí)語言編程接口TwinCAT高級(jí)語言編程接口Ads組件調(diào)用過程簡(jiǎn)介C++15徽嫌姐輔助工具-TwinCATADSMonitorTwinCATADSMonitor可以抓取ADS通訊數(shù)據(jù)包
44ADS數(shù)據(jù)結(jié)構(gòu)幀數(shù)據(jù)通訊數(shù)據(jù)幀記錄基黎遭逾契滓瓶弧溪竟琺岳卿奔權(quán)緝跳嘛缽捻康帥挾翻昆元著汛報(bào)煩壽懲TwinCAT高級(jí)語言編程接口TwinCAT高級(jí)語言編程接口輔助工具-TwinCATADSMonitorTwinC輔助工具-WiresharkPortable
45可以抓取網(wǎng)絡(luò)適配器上的數(shù)據(jù),包括ADSEtherCAT等,但不能抓取本地ADS數(shù)據(jù)包酋臆姨咒欽飲筐攀捧抑凍臣澈懸泳惦刀閩輝胡吵氖朋脅歧疏脫寂兄咆?cái)?shù)鴉TwinCAT高級(jí)語言編程接口TwinCAT高級(jí)語言編程接口輔助工具-WiresharkPortable輔助工具-仿真器1.下載文件:以下路徑為FTp路徑()/Software/embPC-Control/CE/Solutions/CX_Emulator/emulator.zip(CE仿真器英文)/Software/embPC-Control/CE/Solutions/SDK/BeckhoffHMI500V1.3SDK.msi/Software/embPC-Control/CE/Solutions/VS_NET2005/CE5_DbgHlp.zip2.仿真器安裝:a.安裝MicrosoftWindowsCE5.0Emulator.msi需要連接互聯(lián)網(wǎng)b.安裝完仿真器,再安裝虛擬網(wǎng)卡驅(qū)動(dòng)netsvwrap.msi3.配置:a.安裝后修改StartEmulator_DE.bat文件,將參數(shù)中的/Ethernet的MAC改為本地網(wǎng)卡的實(shí)際MAC地址b.參數(shù)vmid后的GUID值做為保存映像是的文件夾名稱。4.設(shè)置仿真器和VS.net集成環(huán)境:WindowsCE5的模擬器是基于x86的,VS2005的DeviceEmulator是基于ARM的,VS2005開發(fā)環(huán)境無法和WinCE模擬器進(jìn)行集成進(jìn)行遠(yuǎn)程調(diào)試。但是可以通過下面的方式實(shí)現(xiàn)集成:1).將CE5_DbgHlp.zip壓縮包文件解壓復(fù)制仿真器的\harddisk\system路徑下(實(shí)際的控制器新版本系統(tǒng)中這些文件已經(jīng)存在)2).運(yùn)行Conmanclient2.exe
46括邪聚洱慎名宿蔚論喇膳曹冤翠班猾徑疤草續(xù)青淀崩睡鋅丹漆桑安夠氖柞TwinCAT高級(jí)語言編程接口TwinCAT高級(jí)語言編程接口輔助工具-仿真器1.下載文件:18括邪聚輔助工具-仿真器(續(xù))3).配置VS2005開發(fā)環(huán)境:a.轉(zhuǎn)到“Tools-->options-->devicetools-->devices”b.選擇WindowsCE5.0設(shè)備,點(diǎn)擊“屬性(properties)”按鈕c.在WindowsCE5.0設(shè)備屬性對(duì)話框點(diǎn)擊“配置(configure)”按鈕d.在TCP/IP配置對(duì)話框選定“使用特定的IP(usespecificIPaddress)”,輸入仿真器的IP地址。下面就可以DebugCE應(yīng)用程序,選擇部署到WindowsCE5.0。如果部署仍然失敗,運(yùn)行仿真器\harddisk\system路徑下的cMaccept.exe文件。測(cè)試正常后保存仿真器的設(shè)置,載關(guān)閉時(shí)選擇SaveSate而不是TrueOff,這樣下次啟動(dòng)仿真器就不需要重新設(shè)置仿真器。如果想刪除保存的文件,轉(zhuǎn)到“我的文檔\MyVirtualMachines下,將上文提到的在StartEmulator_DE.bat設(shè)置的vmid值為名稱的文件夾刪除即可。如果在具體操作用什么問題,您可以隨時(shí)和我們聯(lián)系。vs2008注意事項(xiàng):用如下文件代替CE5_DbgHlp.zip內(nèi)的文件C:\ProgramFiles\CommonFiles\MicrosoftShared\CoreCon\1.0\Target\wce400\x86
47讓忍杉俄邢泣焊親窺余毆培渠硫坑喇瞬憤投囊毒撫顛伍寢誘啪柯續(xù)臆壹籃TwinCAT高級(jí)語言編程接口TwinCAT高級(jí)語言編程接口輔助工具-仿真器(續(xù))3).配置VS2005開發(fā)環(huán)境:輔助工具-仿真器(續(xù))最近剛剛發(fā)布了基于MicrosoftVirtualPC的WinCE6.0仿真器,能夠更真實(shí)的模擬我們的硬件控制器。
48睬戶纏詢撩畝蓖砒灌烘神悄巷鴦?dòng)X梭愈板褲踢墟擋習(xí)悸窺辣班紗婿壞長(zhǎng)嫌TwinCAT高級(jí)語言編程接口TwinCAT高級(jí)語言編程接口輔助工具-仿真器(續(xù))最近剛剛發(fā)布了基于MicrosoftPLC運(yùn)行狀態(tài)檢測(cè)1.HMI啟動(dòng)是需要檢測(cè)PLCServer的啟動(dòng)狀態(tài)2.在運(yùn)行中檢測(cè)控制器的狀態(tài)舉例:VS.NET:AmsRouterNotificationAdsStateChanged注:此兩個(gè)事件只針對(duì)本地通訊有用(客戶端和服務(wù)器端在同一個(gè)PC上)
49溯僵螞叛仲掙腿芹南狼瞇掖繭脹牢情召冒訊迂吏蓋五門竭特膳輩犀相咬懲TwinCAT高級(jí)語言編程接口TwinCAT高級(jí)語言編程接口PLC運(yùn)行狀態(tài)檢測(cè)1.HMI啟動(dòng)是需要檢測(cè)PLCServe常用的GroupIndex
50GroupIndex值描述0x00004020M寄存器(用%M聲明)0x00004021MX寄存器(用MX聲明)0x0000F020I寄存器(用%I聲明)0x0000F021IX寄存器(用IX聲明)0x0000F030Q寄存器(用%Q聲明)0x0000F031QX寄存器(用QX聲明)0x0000F003取變量的句柄0x0000F005通過變量句柄訪問變量值0x0000F006釋放句柄1.對(duì)于MX,IX,QX寄存器的偏移地址的單位是“位”,而不是字節(jié),計(jì)算地址需要注意2.M寄存器偏移地址最大值為0x0000FFFF,而MX,I,IX,Q,QX偏移地址最大值為0xFFFFFFFF。3.上表后三個(gè)主要用于C++語言,其他高級(jí)語言已經(jīng)封裝成專有方法,不需直接調(diào)用。鞍脂鄖匣阮擺皇倫加佃曉嫡平庫戀塘湘控下瞞疑阻可岳食糾岳刷捌欺豹雅TwinCAT高級(jí)語言編程接口TwinCAT高級(jí)語言編程接口常用的GroupIndex22GroupTwinCATSystemCOMObject可以用來遠(yuǎn)程控制TwinCATService的停止,啟動(dòng)等操作
51催杏攙喧扯勇傲番坤備夷浪材頗橡娛秦雖讓渾殼橫亮班甘羹藏佩姑綿既抖TwinCAT高級(jí)語言編程接口TwinCAT高級(jí)語言編程接口TwinCATSystemCOMObject可以用來遠(yuǎn)TwinCATSystemManagerAutomationInterface可以實(shí)現(xiàn)SystemManager的部分功能,如掃描IO,修改鏈接,激活配置等。實(shí)際應(yīng)用舉例:一鍵式系統(tǒng)更新:通過TwinCATSystemManagerAutomationInterface自動(dòng)更新系統(tǒng)配置信息(tsm文件)通過PLCControlCommandLine自動(dòng)更新PLC程序(PRO)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年云計(jì)算軟件合作協(xié)議書
- 有效應(yīng)對(duì)輔導(dǎo)員招聘考試的策略試題及答案
- 動(dòng)火作業(yè)的課件
- 花藝師考試設(shè)計(jì)效果圖評(píng)審標(biāo)準(zhǔn)試題及答案
- 創(chuàng)新思維在農(nóng)藝師考試中的應(yīng)用試題及答案
- 系統(tǒng)分析師考試客戶關(guān)系維護(hù)試題及答案
- 福建事業(yè)單位考試法律法規(guī)試題及答案
- 園藝植物栽培技術(shù)發(fā)展的歷程分析試題及答案
- 各高校輔導(dǎo)員團(tuán)隊(duì)管理實(shí)務(wù)試題及答案
- 園藝師市場(chǎng)營銷技能試題及答案
- 中華民族共同體概論課件專家版5第五講 大一統(tǒng)與中華民族共同體初步形成(秦漢時(shí)期)
- 2024年山東省濟(jì)南市市中區(qū)中考一模道德與法治試題
- 銀行基礎(chǔ)知識(shí)考試題庫300題(含答案)
- 2024ABB IRB 1100產(chǎn)品手冊(cè)指南
- (完整版)風(fēng)力發(fā)電場(chǎng)安全規(guī)程DLT796-2012
- 籃球比賽記錄表
- 消防安全評(píng)定等級(jí)
- 危險(xiǎn)品安全教育培訓(xùn)總結(jié)報(bào)告
- 2024年晉中職業(yè)技術(shù)學(xué)院高職單招(英語/數(shù)學(xué)/語文)筆試歷年參考題庫含答案解析
- 小班健康《保護(hù)鼻子》課件
- 《測(cè)繪管理法律與法規(guī)》課件-測(cè)繪法律法規(guī)
評(píng)論
0/150
提交評(píng)論