下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
作者 曹志日期 2021-2-版本
1635樓使用 VisualC#實(shí)現(xiàn)與TWINCATPLCcontrol變量的通訊概述使用VisualC#軟件,實(shí)現(xiàn)通過(guò)對(duì)TWINCATPLCcontrol中的變量(boolintstring類(lèi)型)進(jìn)行和修改文件名 文件說(shuō)PLCPLCcontrolC#C#備注關(guān)鍵字:通過(guò)高級(jí)語(yǔ)言對(duì)PLC免責(zé) 通過(guò)定時(shí)方式來(lái)控制PLC程序中變量的讀 通過(guò)通知方式來(lái)控制PLC程序中變量的讀 通過(guò)c#程序和賦值PLC程序中的1個(gè)布爾打開(kāi)PLC在變量定義區(qū)定義一個(gè)名稱(chēng)為Bool1的bool運(yùn)行PLC程序.打開(kāi)VisualC#2008Express新建Windows.在資源管理器中這個(gè)庫(kù)文件是BECKHOFFC#PLC進(jìn)行連接和修改在資源管理器中導(dǎo)入庫(kù)文件,點(diǎn)擊,如圖1其具體路徑為“安裝盤(pán):\TwinCAT\ADSApi\.NET\v2.0.50727”;對(duì)于ce系統(tǒng)其路徑為“安裝盤(pán):\TwinCAT\ADSApi\CompactFramework\v2.0”。完畢后如圖一所示出現(xiàn)usingTwinCAT.Ads;usingSystem.IO;winform界面設(shè)計(jì)上畫(huà)一個(gè)textbox和一個(gè)在c#編程區(qū)2個(gè)變publicpartialclassForm1:{privateintprivateTcAdsadsprivatevoidForm1_Load(objectsender,System.EventArgs{ads=newTcAds();{adshbool1=ads}catch(Exception{}}該段程序作用是新建一個(gè)TcAds的實(shí)例ads并調(diào)用該connect方法與(run-time1)進(jìn)行連接。并使用句柄hbool1接受PLC程序中的BUTTON1TEXT屬性改為“read”botton控點(diǎn)擊運(yùn)行中的運(yùn)切到plccontrol中觀察當(dāng)前bool1.C#Text中顯示的bool狀態(tài)應(yīng)該與Plc程序中的bool1相同C#winform17將這個(gè)button2的textprivatevoidbutton2_Click(objectsender,EventArgs{{ads}catch(Exception{}}19.同時(shí)將PLCRUN可以看到當(dāng)前的PLC狀態(tài)時(shí)C#點(diǎn)擊Write切換到PLC程序后,我們發(fā)現(xiàn)PLC程序中的BOOL變量的值由TRUE轉(zhuǎn)換成FALSE通過(guò)c#程序和賦值PLC程序中的1個(gè)整形變1.在PLC1int運(yùn)行PLC程序C#1個(gè)在c#1并使用句柄hint1接受PLC程序中的切回PLCint1Text2中的數(shù)值應(yīng)該和我們?cè)赑LCcontrol通過(guò)句柄將值賦入到plcin1中ads.WriteAny(hint1,這時(shí)候PLC中INT10C#WRITEPLCINTC#程序中通過(guò)c#程序和賦值PLC程序中的1個(gè)雙精度浮點(diǎn)在PLCCONTROL中添加一個(gè)LREAL類(lèi)型的變量運(yùn)行PLCC#TEXTBOXprivateint并使用句柄hreal1接受PLC程序中的hlreal1=adstextBox3.Text=ads.ReadAny(hlreal1,C#read修改PLC程序中LREALC#READ下面對(duì)LREAL類(lèi)型的變量值進(jìn)行輸C#LREALads.WriteAny(hlreal1,可以看到PLC程序中LREAL通過(guò)c#程序讀賦值PLC程序中的1個(gè)字符在Plccontrol中定義一個(gè)stringstr1運(yùn)行PLC程序在窗體界面設(shè)計(jì)中添加一個(gè)textbox在c#1使用句柄對(duì)PLC程序中的hstr1 ads {5..在PLC程序?qū)tr1進(jìn)行賦值C#程序中按readads.WriteAny(hstr1,textBox3.Text,newint[]{5C#textbox3中的字符串輸入到PLC程序中write后,可以看到PLCSTRING通過(guò)c#程序和賦值PLC程序中的1個(gè)結(jié)構(gòu)在PLCCONTROLDatatypes選項(xiàng)卡,新建一個(gè)結(jié)構(gòu)體命名TcomplexStruct,如圖所示:2個(gè)元素,分別是BOOL類(lèi)型的BOOLVAL和STRING3,在PLC的MAIN函數(shù)中這個(gè)結(jié)構(gòu)體4,LOG-IN,運(yùn)行PLC5C#2個(gè)TEXTBOX5.在C#程序編寫(xiě)中添加添加一個(gè),并一個(gè)結(jié)構(gòu)體類(lèi)型的類(lèi)[StructLayout(LayoutKind.Sequential,Pack=1)] publicclassComplexStruct{publicboolboolVal;[MarshalAs(UnmanagedType.ByValTStr,SizeConst=6)]publicstringstringVal="";[MarshalAs(UnmanagedType.ByValArray,SizeConst=4)]publicint[]dintArr=newint[4];}C#privatevoidFillStructControls(ComplexStruct{textBox4.Text=structure.boolVal.ToString();textBox5.Text=structure.stringVal;}privateinthcomplexStruct;在Form1_LoadhcomplexStruct=ads 編寫(xiě)從PLC中結(jié)構(gòu)體元素值的C#語(yǔ)句FillStructControls((ComplexStruct)ads點(diǎn)擊運(yùn)行C#這時(shí)候我們可以再PLC在C#程序中重新點(diǎn)擊read,C#PLCprivateComplexStruct{ComplexStructstructure=newComplexStruct();structure.boolVal=Boolean.Parse(textBox4.Text);structure.stringVal=textBox5.Text;return}ads.WriteAny(hcomplexStruct,GetStructFromControls());\可以看到PLC通過(guò)c#程序和賦值PLC程序中的1個(gè)數(shù)在PLC14個(gè)元素的數(shù)組變量作為結(jié)構(gòu)體的元素,并賦予初值。publicint[]dintArr=new.編寫(xiě)從PLC中結(jié)構(gòu)體數(shù)組值的C#語(yǔ)句textBox6.Text=String.Format("{0:d},{1:d},{2:d},{3:d}", 在C#程序中編寫(xiě)一個(gè)將讀入的數(shù)組元素寫(xiě)到C#ComplexStructstructure=newString[]stringArr=textBox6.Text.Split(newchar[]{','});for(inti=0;i<stringArr.Length;i++)structure.dintArr[i]=在C#點(diǎn)擊通過(guò)定時(shí)方式來(lái)控制PLC程序中變量的在C#程序界面設(shè)計(jì)中,添加2privatevoidbutton3_Click(objectsender,EventArgse){timer1.Enabled=true;button3.Enabled=false;button4.Enabled=true;}privatevoidbutton4_Click(objectsender,EventArgs{timer1.Enabled=false;button3.Enabled=button4.Enabled=}privatevoidtimer1_Tick(objectsender,EventArgs{textBox1.Text=ads.ReadAny(hbool1,textBox2.Text=ads.ReadAny(hint1,typeof(int)).ToString();textBox4.Text=ads.ReadAny(hlreal1,textBox3.Text=ads.ReadAny(hstr1,typeof(String),new{5}點(diǎn)擊TIME修改PLC切回C#可以發(fā)現(xiàn)在下一個(gè)周期內(nèi)C#通過(guò)通知方式來(lái)控制PLC程序中變量的 通知方式ADS客戶端向ADS服務(wù)器發(fā)送ADSC#2個(gè)BOTTON2個(gè)控件的TEXTNotificationONNotificationSystem.CollectionsusingprivateArrayList創(chuàng)建一個(gè)ads_AdsNotificationEx方法用來(lái)處理變量參privatevoidads_AdsNotificationEx(objectsender,AdsNotificationExEventArgse){TextBoxtextBox=(TextBox)e.UserData;Typetype=e.Value.GetType();if(type==typeof(string)||type.IsPrimitive)textBox.Text=e.Value.ToString();elseif(type==typeof(ComplexStruct))}在FORM_LOAD中處理的函ads.AdsNotificationEx+=newbutton4.Enabled=BUTTON4在通知中將變量到ADS客戶privatevoidbutton3_Click(objectsender,EventArgs{{//registerAdsTransMode.OnChange,100,0,textBox2,typeof(int)));AdsTransMode.OnChange,100,0,textBox1,typeof(Boolean)));AdsTransMode.OnChange,100,0,textBox3,typeof(String),newint[]{5})); ",AdsTransMode.OnChange,100,0,textBox5,typeof(ComplexStruct)));}catch(Exception{}button4.Enabled=button3.Enabled=}BUTTON3,BUTTON3,BUTTON4BUTTON4(取消通知方式)的按鍵響應(yīng)privatevoidbutton4_Click(object
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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年度醫(yī)療設(shè)備隱秘操作監(jiān)管規(guī)范與服務(wù)協(xié)議3篇
- 西藏農(nóng)牧學(xué)院《園藝療法概論》2023-2024學(xué)年第一學(xué)期期末試卷
- 2024版建筑工程施工合同履約保函
- 武漢理工大學(xué)《結(jié)構(gòu)設(shè)計(jì)原理課程設(shè)計(jì)》2023-2024學(xué)年第一學(xué)期期末試卷
- 2024版綜合醫(yī)療設(shè)備交易協(xié)議細(xì)則一
- 2024教育培訓(xùn)機(jī)構(gòu)合作與許可合同
- 個(gè)性化民間車(chē)輛抵押借款合同范本2024版版B版
- 二零二五年度新能源汽車(chē)充電站土地購(gòu)置協(xié)議3篇
- 天津現(xiàn)代職業(yè)技術(shù)學(xué)院《管理知識(shí)概論》2023-2024學(xué)年第一學(xué)期期末試卷
- 二零二五年珠寶設(shè)計(jì)與定制生產(chǎn)合同
- 政治表現(xiàn)及具體事例三條經(jīng)典優(yōu)秀范文三篇
- 高考詩(shī)歌鑒賞專(zhuān)題復(fù)習(xí):題畫(huà)抒懷詩(shī)、干謁言志詩(shī)
- 2023年遼寧省交通高等專(zhuān)科學(xué)校高職單招(英語(yǔ))試題庫(kù)含答案解析
- GB/T 304.3-2002關(guān)節(jié)軸承配合
- 漆畫(huà)漆藝 第三章
- CB/T 615-1995船底吸入格柵
- 光伏逆變器一課件
- 貨物供應(yīng)、運(yùn)輸、包裝說(shuō)明方案
- (完整版)英語(yǔ)高頻詞匯800詞
- 《基礎(chǔ)馬來(lái)語(yǔ)》課程標(biāo)準(zhǔn)(高職)
- IEC61850研討交流之四-服務(wù)影射
評(píng)論
0/150
提交評(píng)論