版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
]議是開放的。在現(xiàn)有的各種現(xiàn)場(chǎng)總線標(biāo)準(zhǔn)中,PROFIBUSDCS]議是開放的。在現(xiàn)有的各種現(xiàn)場(chǎng)總線標(biāo)準(zhǔn)中,PROFIBUSDCS角度討論了利用西門子公司的VPC3+C芯片及一些外設(shè)來實(shí)現(xiàn)通訊接口實(shí)現(xiàn)[關(guān)鍵詞PROFIBUS-DP;IM183-1;VPC3+C;DPS2;SIMATICS7-IProfibusProtocalStudy[ABSTRACT]FieldbustechnologyisProfibusProtocalStudy[ABSTRACT]Fieldbustechnologyisafield-levelequipment,thedigitizationofindustrialfieldlayernetworkcommunicationtechnology,ithasastrongon-siteinformationintegrationcapabilities,asystemcomposedofhighreliability,maintainabilityisgood,butthebusprotocolisopen.Intheexistingstandardsforavarietyoffieldbus,PROFIBUSFieldbusisaverypopularfieldbusstandards,accountforalargemarketshare,butalsoincreasedyearbyyear.Inviewofthissituation,howadevicetodevelopaPROFIBUScommunicationinterfacethatallowsdevicestoreceivePROFIBUSfieldbusnetworksisparticularlyimportant,andinthisregardinrecentyears,thedomesticsystemprovidefewdetails.Somedomesticmanufacturersaredevelopingandhavealsolaunchedtheirownfieldbusproducts.ButtheFCSseriesofproductsinthefastaccesstothemainstreamoffieldbussystemhassomeresistance,arelativelysmallmarketshare,whichprovidesmostofthesystemdesignorinthemainpushDCSsystem.Tobeabletoquicklyaccesstothemainstreamoffieldbus,R&DPROFIBUS-DP/MODBUSgatewaysandPROFIBUS-DP/RS485gateway,withaviewtoachievingitsFCSseriesofinput/outputfromthestationequipmentforswift,seamlessaccesstoPROFIBUS-DPnetwork,andtotoimproveitsautomatedequipmentAswellasforindustrialcontrolthatbetweendifferentdevices aCommunicationInterface,"whichenablesdevicewiththeinterfaceconnecttothenetworkasaslave,"thecompletionofcommunicationcontrolfunctions,thisarticleintroducesthetransferofcommunicationshardwareandsoftwareinterfaceimplementation.FromadevelopmentpointviewdiscussedtheuseofSiemensviewdiscussedtheuseofSiemensVPC3+Cchipandanumberofcommunicationinterfacehardwareandsoftware,methods,andintroducedPROFIBUS-DPtodevelopsoftwareinanumberofimportantcomponentsandsoftwareusedinconjunctionwithanumberofconfiguration.[KeyWords]PROFIBUS-DP;IM183-1;VPC3+C;DPS2;目錄1112346892SiliconLabsC8051F34建立OPC服5ProfibusDP目錄1112346892SiliconLabsC8051F34建立OPC服5ProfibusDP 引 引1.1現(xiàn)場(chǎng)總線概述及DCSFCS(FieldbusControlSystem)系統(tǒng),已被稱為第五代過程控制系統(tǒng)。而FCS和DCS的真正區(qū)別在于其現(xiàn)場(chǎng)總線技術(shù)?,F(xiàn)場(chǎng)總線技術(shù)以數(shù)字信號(hào)取代模擬信號(hào),在3C(Computer計(jì)算機(jī)、Control控制、Commcenication)技術(shù)的基礎(chǔ)上,大量現(xiàn)場(chǎng)檢測(cè)與控制信息就地采集、就網(wǎng)絡(luò)互聯(lián)都是遵守OSI參考模型。繁瑣的原理圖布線圖設(shè)計(jì)變得簡單易行;標(biāo)準(zhǔn)接插件快速簡便的安裝使人11.1.1幾種典型的現(xiàn)場(chǎng)總21.1.2Profibus1.1.2Profibus總線協(xié)總線標(biāo)準(zhǔn)DIN19245和歐洲標(biāo)準(zhǔn)的EN50170現(xiàn)場(chǎng)總線標(biāo)準(zhǔn),現(xiàn)已被列入IEC61158國際標(biāo)準(zhǔn)。PROFIBUSPROFIBUSPROFIBUS—DP,PROHBUS—PAPROFIBUSPROFIBUSI/0PROFIBUS—FMS包括應(yīng)用協(xié)議和提供的通信服務(wù),LUFMS不依賴于設(shè)備的對(duì)第2層的訪問。FMS處理單元級(jí)(PLC和PC)的數(shù)據(jù)通信。PROFIBUSPROFIBUS—FMS協(xié)議規(guī)范的構(gòu)成來看,PROFIBUS—PA=PROFIBUS(基本功能+擴(kuò)展功能3系統(tǒng)中應(yīng)用,而且它對(duì)輕、重負(fù)載不敏感。PROFIBUSPROFIBUS1.1.3Profibus-DP總線通PROFIBUS使用權(quán)競(jìng)爭(zhēng)問題,同時(shí)保證通信的實(shí)時(shí)性。參照開放系統(tǒng)互聯(lián)協(xié)議(OSI),在PROFIBUS協(xié)議中第二層的現(xiàn)場(chǎng)總線數(shù)據(jù)鏈路層(FDL)協(xié)議定義了總線存取控制的MAC協(xié)議方式。PROFIBUSPROFIBUS使用簡化令牌總線協(xié)議(simpleversionoftoken—passing)作為MAC層標(biāo)準(zhǔn)。總線上的各個(gè)點(diǎn)以總線方式互連,主站點(diǎn)由PC、PLC等控制中心4存取控制協(xié)議中定義了幾個(gè)重要的時(shí)間量令牌傳遞方TS<NS<PSPS<TS<NS主站2469Profibus總從站1357TSNS:下一個(gè)PS:前一個(gè)存取控制協(xié)議中定義了幾個(gè)重要的時(shí)間量令牌傳遞方TS<NS<PSPS<TS<NS主站2469Profibus總從站1357TSNS:下一個(gè)PS:前一個(gè)令牌實(shí)際循環(huán)時(shí)間TRR:令牌的實(shí)際動(dòng)態(tài)循環(huán)時(shí)間。其計(jì)算方法為:在主站持有令牌時(shí)TTH:某主站收到令牌到該主站將令牌傳送到下一主站的目標(biāo)時(shí)間.其表達(dá)式為TTH=TTR—TRR。PROFIBUS據(jù)報(bào)文的時(shí)間限制將報(bào)文劃分為兩種:高優(yōu)先級(jí)報(bào)文和低優(yōu)先級(jí)報(bào)文。同時(shí),低優(yōu)先級(jí)的報(bào)文又分為三種類型:輪詢鏈表報(bào)文、非循環(huán)的低高優(yōu)先級(jí)報(bào)Profibus-DP報(bào)輪詢鏈表報(bào)低優(yōu)先級(jí)報(bào)非循環(huán)的低優(yōu)先級(jí)報(bào)GAP鏈表報(bào)等。GAP鏈表報(bào)文用于動(dòng)態(tài)維護(hù)邏輯令牌環(huán)、GAP鏈表以及活動(dòng)站點(diǎn)鏈表等。報(bào)文也是按一定順序進(jìn)行處理:先處理輪詢鏈表報(bào)文,接著處理非循環(huán)的低優(yōu)級(jí)報(bào)文,GAP鏈表報(bào)文只有在所有其它報(bào)文都處理完畢并GAP更新計(jì)時(shí)器到5西門子西門子PLC的Profibus總線通PLCPcMAC通過辨認(rèn)主動(dòng)接點(diǎn)(主站)來PROFIBUS點(diǎn)地址是否出錯(cuò),以及令牌是否丟失或有多個(gè)令牌。DPDP從站問的通信基于主一從原理,DPDP從站,主站與從站問周期性地交換用1)1DP主站/O站(例KP從站)循環(huán)地交換信息,并對(duì)總線通信進(jìn)行控制和管理。DPM12)2類DP63)DPDP3)DPDP分布式I/O(非智能型I/O)沒有程序存儲(chǔ)和程序執(zhí)行功能,通信適配器用來1/O,I/O輸入及故障診斷等信息返回給I/OL/O與使L/OET200I/O,ET200M/x/Sis/ec0/RPROFIBUS—DPDP網(wǎng)絡(luò)過通信間接控制從站PLC的I/O。SIMOREGDC—MASTER直PROFIBUS-72硬件利用工控機(jī)作為系統(tǒng)總站,通過CP5611網(wǎng)卡與下位機(jī)通訊[5]。DPPROFIBUSDP2硬件利用工控機(jī)作為系統(tǒng)總站,通過CP5611網(wǎng)卡與下位機(jī)通訊[5]。DPPROFIBUSDPPROFIBUSMODBUS協(xié)議與設(shè)AVRPLC,(DI,DO協(xié)議。DP從站在系統(tǒng)中的示意圖如3所示容,特別是基本概念、基本術(shù)語,以及ASIC芯片的技術(shù)內(nèi)容。DP智能從站采用單片機(jī)C8051F020控制通訊芯片VPC3+C,通過光電隔離的RS-485與控制設(shè)備進(jìn)行通訊[6]。硬件電路連接示意圖如圖4所示。單片機(jī)和VPC3+C都采用3.3伏供電電壓。單片機(jī)外圍有地址撥碼、通訊選22.1184MHzVPC3+C48MHz。數(shù)穩(wěn)定。下面分別對(duì)主要芯片進(jìn)行介紹8CP5611網(wǎng)工控(人機(jī)界面4硬件電路連接示意2.1SiliconLabs4硬件電路連接示意2.1SiliconLabsC8051F單片25MIPS;侵入式的在系統(tǒng)調(diào)試接口(片內(nèi)真12(C8051F020/1100ksps8通ADCPGA8500kspsADCPGA8通道模擬多路開關(guān)12DAC,具有可編程數(shù)據(jù)更新方式;64K節(jié)可在系統(tǒng)編程FLASH儲(chǔ)器;4352(4096+256)字節(jié)的片RAM;可尋64K節(jié)地器陣列;片內(nèi)看門狗定時(shí)器、VDD監(jiān)視器和溫度傳感器。具有片VDD視器、看門狗定時(shí)器和時(shí)鐘振蕩器C8051F020真正能場(chǎng)更新8051固件。片內(nèi)JTAG調(diào)試電路允許使用安裝在最終應(yīng)用系統(tǒng)上的產(chǎn)品MCU進(jìn)行非侵作。I/O、/RSTJTAG引腳都容許5V的輸入信號(hào)電壓。利用此單片機(jī),一方面由于其功能比較強(qiáng)大,能與VPC3+C兼容,另一方是由于它可以在線進(jìn)行調(diào)試,開發(fā)比較便捷9通訊選PC撥C8051F020單片電數(shù)碼顯時(shí)2.2子2.2子VPC3+CPROFICHIPPROFIBUS-DP智能從站的芯片,PROFIBUSPROFIBUS標(biāo)準(zhǔn)協(xié)議相關(guān)內(nèi)容和芯DP-V0/-V1/-V2Profibus-DP從站主要通訊芯片[7],功能更強(qiáng)9.6Kbit/s到12000Kbit/s12Mb/s3.3V列芯片兼容;VPC3+C4KByteRAM,引腳與SPC3兼容。內(nèi)部鎖存器/寄存器位于前21個(gè)地址單元。組織參數(shù)位于RAM中從16H開40H0、1、2及狀21個(gè)地址單元。緩沖器結(jié)構(gòu)是基于組織參數(shù)來寫的,此外,普通參數(shù)設(shè)置數(shù)據(jù)()和狀態(tài)顯示(如通用控制命令等)也存儲(chǔ)在這些單元。方式寄存器0和寄存器VPC3+C16個(gè)中斷事件存儲(chǔ),各個(gè)中斷事件的觸發(fā)沒有優(yōu)先級(jí),都是普通的中斷輸出;內(nèi)部集成看門狗計(jì)數(shù)器,能自動(dòng)識(shí)別總線波特率12Mkps動(dòng)搜索狀態(tài)。其工作有三種狀態(tài):波特率檢測(cè),波特率控制和DP控制。00H,而外部診斷需在從第7個(gè)字節(jié)開始的單元中寫入用戶數(shù)據(jù)。VPC3+C內(nèi)部集成了狀態(tài)機(jī)[8]Profibus-DP協(xié)議,Profibus-DP的狀態(tài)之前,必須有主站對(duì)其賦參數(shù)、配置初始化并經(jīng)過診斷。Profibus-DP從站的狀態(tài)機(jī)如圖5所示Power初始參數(shù)未準(zhǔn)備設(shè)置從站地檢Power初始參數(shù)未準(zhǔn)備設(shè)置從站地檢查配置數(shù)配置未初始化未完輸出格式有DP看門 在CPU中,設(shè)置從站地址不可改變,從站將直接接受Prm_Telegram參數(shù)賦值指令。在此過程中,CPU除判斷攜帶PROFIBUS標(biāo)準(zhǔn)規(guī)定的參數(shù)和由用戶應(yīng)用初始化參數(shù)配置文成后,從站進(jìn)入Wait_Cfg等待組態(tài)初始化。組態(tài)初始化指Data_Exch狀態(tài),進(jìn)行與主站的周期(atchdog主站一直處于激活狀態(tài)。在參數(shù)賦值指令中對(duì)Watchdog的計(jì)時(shí)進(jìn)行設(shè)定2.33.3V下的高速帶隔離通信(1)帶隔離的增強(qiáng)型RS485收發(fā)ADM2483帶隔RS-485發(fā)器。它包括一個(gè)三通道隔離器、一個(gè)帶三態(tài)輸出的差分驅(qū)動(dòng)器和一個(gè)帶三態(tài)輸入的差分接收器。其1/8單位負(fù)載的接收器輸入阻抗可允許多達(dá)256個(gè)收發(fā)器接入總線。最高傳輸速率可達(dá)500Kbps。邏輯端兼容3V/5V工作電源,總線端5V供電。ADM2483采用限擺率驅(qū)動(dòng)器,較低擺率降低了不恰當(dāng)?shù)慕K端匹配和接頭產(chǎn)出置為高阻狀態(tài),防止過度的功率損耗。芯片封裝采用易于使用的SOW16封裝,工業(yè)級(jí)溫度范圍,無需任何分立元件就可實(shí)現(xiàn)RS485功能。線最大節(jié)點(diǎn)數(shù):256個(gè)具有±2KVESD保護(hù)功能;熱關(guān)斷保護(hù)功能;工業(yè)級(jí)(VDD1發(fā)器;封裝:SO-16寬體。平衡傳輸線設(shè)計(jì),并符合ANSI和ISO8482EIA/TIA-485-A:1987(E)標(biāo)準(zhǔn)。該器件采用收機(jī)。該設(shè)備的邏輯方采用5V3V電源,總線端使用5V電源供電。VDD1VDD2=0AISO8482:1987(E)20Mbps;5V3V工作電壓(VDD1;高共模瞬態(tài)抑制:>25千伏/微秒;隔離DE狀態(tài)輸出;開路50;VIORM560V2.4圖設(shè)VPC3+C6所示。VPC3+CIntelC8051F020RAM令,就能通過地址和數(shù)據(jù)復(fù)用對(duì)VPC3+C進(jìn)行控制[9]。通訊芯片內(nèi)部RAM0000H-05FFHCPU1000H-15FFH單元。VPC3+C地址解碼電路。DB7-DB0是數(shù)據(jù)和地址復(fù)用總線,可以產(chǎn)生8位的數(shù)據(jù)和低8位地址,高8位地址由AB7-AB0產(chǎn)生。工作時(shí),CPU會(huì)產(chǎn)生地址鎖存讀取相應(yīng)地址的數(shù)據(jù)。微控制器時(shí)鐘范圍是0-25MHz,本設(shè)計(jì)采用22.1184MHz,由外部晶振產(chǎn)生,通訊芯片時(shí)鐘為48MHz,這是芯片特定時(shí)鐘源。有源晶振輸出端口外接 95317 8 6 4 2 512342.4圖設(shè)VPC3+C6所示。VPC3+CIntelC8051F020RAM令,就能通過地址和數(shù)據(jù)復(fù)用對(duì)VPC3+C進(jìn)行控制[9]。通訊芯片內(nèi)部RAM0000H-05FFHCPU1000H-15FFH單元。VPC3+C地址解碼電路。DB7-DB0是數(shù)據(jù)和地址復(fù)用總線,可以產(chǎn)生8位的數(shù)據(jù)和低8位地址,高8位地址由AB7-AB0產(chǎn)生。工作時(shí),CPU會(huì)產(chǎn)生地址鎖存讀取相應(yīng)地址的數(shù)據(jù)。微控制器時(shí)鐘范圍是0-25MHz,本設(shè)計(jì)采用22.1184MHz,由外部晶振產(chǎn)生,通訊芯片時(shí)鐘為48MHz,這是芯片特定時(shí)鐘源。有源晶振輸出端口外接 95317 8 6 4 2 51234A12A8/P5.0249DIVIDER33534123100PIN3026RTS278CTS33292510 6 XCLK1 C992 6C8051F020VPC3+CVDDVDD<2.7V果需要,時(shí)鐘源可以在運(yùn)行時(shí)切換到外部振蕩器。標(biāo)準(zhǔn)的8051程序和數(shù)據(jù)地址配置包括256字節(jié)的數(shù)據(jù)RAM,其中高128A10/P5.2A11/P5.3A13/P5.5A14/P5.6A15/P5AIN1.7/A15/P1.7AIN1.6/A14/P1.6A15m/A7/P2.7A14m/A6/P2.6AIN1.5/A13/P1.5AIN1.1/A9/P1.1AIN1.0/A8/P1.0A13m/A5/P2AD4/D4/P34下來的16字節(jié)既可以按字節(jié)尋址也可以按位尋址。另有位于外部數(shù)據(jù)存儲(chǔ)器地址(EMIF下來的16字節(jié)既可以按字節(jié)尋址也可以按位尋址。另有位于外部數(shù)據(jù)存儲(chǔ)器地址(EMIF接能,系統(tǒng)時(shí)鐘頻率至少為32kHz。DP狀態(tài)機(jī)復(fù)位。用戶看門狗計(jì)數(shù)器是一個(gè)16位的內(nèi)部存儲(chǔ)器單元,初始值由時(shí),VPC3+C就進(jìn)入“等待參數(shù)化”狀態(tài),DP狀態(tài)機(jī)執(zhí)行“離開主站”命令。行其核心在于電源。選用開關(guān)電源模塊,供單片機(jī)、VPC3+C等元器件使Header32 C2 C6 7電源112二極管UF40071N4007UF4007比1N4007VPC3+C采用光電隔離的RS485芯片ADM2486ADM2486內(nèi)部有邏輯塊和總線塊,其供電電源分別是3V和5V,能有效地減少外部對(duì)從站的干擾,且通訊速率[11]二極管UF40071N4007UF4007比1N4007VPC3+C采用光電隔離的RS485芯片ADM2486ADM2486內(nèi)部有邏輯塊和總線塊,其供電電源分別是3V和5V,能有效地減少外部對(duì)從站的干擾,且通訊速率[11]20Mbps,完全符合設(shè)計(jì)要求。單片機(jī)串口采用帶隔離的RS485ADM2483。它包括一個(gè)三通道隔離器、一個(gè)帶三態(tài)輸出的差分1/8允許多達(dá)256個(gè)收發(fā)器接入總線。最高傳輸速率可達(dá)500Kbps。邏輯端兼容3V/5V5V2.5PCB設(shè)電路的基本功能,也是接下來生成網(wǎng)絡(luò)表和設(shè)計(jì)印刷電路板的基礎(chǔ)。見圖8.DocumentFile-New-Design-Add/RemoveLibrary-瀏覽所需零件庫-Add-Design-Add/RemoveLibrary-瀏覽所需零件庫-Add-OkPlace-右鍵-Properies….Designation-Part-Footrint存盤存盤0.3MM,0.2MM1.0MM;銅箔最小間隙:面板:0.3MM,面板:0.2MM0.55MM,元件與板邊最小距離為5.0MM,盤與板邊最小距離為4.0MM;一般通孔安裝元件的焊盤的大小(徑)1..5MM,2.0MM,議(2.5MM)如果不能用圓焊盤長邊、短邊與孔的關(guān)系為:電解電容不可觸及發(fā)熱元件,大功率電阻,0.0MM,它元件到散熱器的2.0MM;大型元器件(15.0MM以上的電解電容、大電流的插座等M2.5MM的,相鄰的焊盤周邊要有絲印油包0.2MM(0.5MM)ICPCB500CM2時(shí)PCB板彎曲,在PCB5M來在過錫爐時(shí)加上防止PCB板彎曲的壓條。每一粒三極管必須在絲印上標(biāo)出e,c,b腳。需要過錫爐后才焊的元件,盤要開走錫位,向與過錫方向相反,度視孔0.5MM1.0MM(例如兩腳的晶振為減少焊點(diǎn)短路,所有的雙面印制板,過孔都不開綠油窗。每一塊PCB建立網(wǎng)絡(luò)報(bào) Create打印輸出報(bào)表布局時(shí),DIP裝IC放的方向必須與過錫爐的方向成垂直,不可平行。如果布局上有困難,可允許水平IC(OP裝IC放方向DIP反。布線方向?yàn)樗交虼怪?,由垂直轉(zhuǎn)入水45進(jìn)入。元件的安放為水平或有高頻回路布線要更短。模擬電路及數(shù)字電路的地線及供電系統(tǒng)要完全分開。果印制板上有大面積地線和電源線區(qū)(面積超過(3)PCB平方毫米應(yīng)局部開窗口布局時(shí),DIP裝IC放的方向必須與過錫爐的方向成垂直,不可平行。如果布局上有困難,可允許水平IC(OP裝IC放方向DIP反。布線方向?yàn)樗交虼怪保纱怪鞭D(zhuǎn)入水45進(jìn)入。元件的安放為水平或有高頻回路布線要更短。模擬電路及數(shù)字電路的地線及供電系統(tǒng)要完全分開。果印制板上有大面積地線和電源線區(qū)(面積超過(3)PCB平方毫米應(yīng)局部開窗口案和文字代號(hào)等,例如元件標(biāo)號(hào)和標(biāo)稱值、元件外廓形狀和廠家標(biāo)志、生產(chǎn)日給裝配和維修帶來很大不便。正確的絲印層字符布置原則是:”不出歧義,見插針,美觀大方”3軟件VPC3+C片將數(shù)據(jù)發(fā)送給主站及根據(jù)系統(tǒng)要求組織外部診斷等。用戶程序主VPC3+C初始化和啟動(dòng)、數(shù)據(jù)收發(fā)以及處理從站診斷事務(wù)、用戶接口數(shù)據(jù)上電后只對(duì)單片機(jī)VPC3+C片初始化一次,數(shù)據(jù)處理和各種狀態(tài)的轉(zhuǎn)換循環(huán)主站的地址。軟件程序見附錄二開N和硬件一致YY通知VPC3+C進(jìn)數(shù)據(jù)交換狀有模塊出錯(cuò)N填充診斷主通過MODBUS將VPC3+C取回輸出數(shù)模塊初PROFIBUS-DP輸入幀數(shù)據(jù)3.1GSD3.1GSD文件開GSD(GeneralScriptionDocument)可稱為電子設(shè)備數(shù)據(jù)文件,是有生產(chǎn)GSD文件示例#Profibus_DP;GSD文件開頭Vendor_Name="DP_C8051F020";銷售商Revision="Rev.0";DP設(shè)備版本號(hào)Ident_Number=0xA0A8DP設(shè)備的類型,每一個(gè)現(xiàn)場(chǎng)設(shè)備必須有一個(gè)PNOHardware_Release="V1.0";DP設(shè)備的硬件版本號(hào)Software_Release="V1.0";DP設(shè)備的軟件版本號(hào)Redundancy=0;是否支持冗余.當(dāng)前不支持.Repeater_Ctrl_Sig=2;TTL""Modular_Station=0;模塊化從站Module="16ByteIn,16ByteOut"0x1F,0x2FProfibus的軟件構(gòu)Profibus-DPVPC3+C處理及中斷事物處理。主程序和VPC3+C初始化程序流程圖如圖1112中斷處理程序流程圖如圖13所示。中斷事件包括新的參數(shù)報(bào)文事件、全局控A否有輸出數(shù)據(jù)否是否有外部中斷是否診斷數(shù)據(jù)是否發(fā)是A主程序流程12VPC3+C初始化程序流A否有輸出數(shù)據(jù)否是否有外部中斷是否診斷數(shù)據(jù)是否發(fā)是A主程序流程12VPC3+C初始化程序流程設(shè)置配置數(shù)據(jù)長獲取配用緩沖區(qū)指設(shè)定內(nèi)部看門狗工作模初始化緩沖區(qū)長取得波特率VPC3+C硬件模取得診斷緩沖區(qū)指設(shè)定地取得輸入緩沖區(qū)指VPC3+C實(shí)際配置數(shù)據(jù)寫入寄存器變量名緩沖區(qū)中寫入配置數(shù)初始化寫診斷緩沖看門狗寫輸入讀取輸出數(shù)VPC3+C寫中單片機(jī)VPC3+C開A否有新的組態(tài)是是進(jìn)入數(shù)據(jù)交換狀否與當(dāng)前相同是全局控制命令A(yù)否有新的組態(tài)是是進(jìn)入數(shù)據(jù)交換狀否與當(dāng)前相同是全局控制命令是否有新的站地是 有新參是否波特率是A13中斷程序流程定中斷事件。VPC3+C是通過中斷與單片微控制器進(jìn)行通信的,但是單片微控制時(shí),將會(huì)產(chǎn)NEW_PRM_DATA中斷,執(zhí)行校核參數(shù)中斷處理程序。用宏和指針。在校核參數(shù)程序中,檢測(cè)到參數(shù)報(bào)文正確時(shí),就用宏參數(shù)中斷處理程序流程圖如圖14所示中斷結(jié)波特率處理參數(shù)報(bào)存入緩獲取控制命更新原停止輸入數(shù)據(jù)發(fā)否中斷開 有新的參數(shù)是參數(shù)數(shù)據(jù)>7字是 有新的參數(shù)是參數(shù)數(shù)據(jù)>7字是是否 有新參數(shù)數(shù)否顛倒結(jié)取得接收數(shù)據(jù)的長度和指開否新的組態(tài)數(shù)是否組態(tài)數(shù)據(jù)長度為是 組態(tài)數(shù)據(jù)與否新的組態(tài)數(shù)是否組態(tài)數(shù)據(jù)長度為是 組態(tài)數(shù)據(jù)與前否 組態(tài)沖否組態(tài)數(shù)據(jù)檢查中斷程序流程3.3MODBUS的軟件構(gòu)(1)MODBUSModbus控。此協(xié)議定義了一個(gè)控制器能認(rèn)識(shí)使用的消息結(jié)構(gòu),而不管它們是經(jīng)過何種網(wǎng)絡(luò)進(jìn)行通信的。它描述了一控制器請(qǐng)求訪問其它設(shè)備的過程,如果回應(yīng)來自其它設(shè)備的請(qǐng)求,以及怎樣偵測(cè)錯(cuò)誤并記錄。它制定了消息域格局和內(nèi)容的公共格當(dāng)在Modbus絡(luò)上通信時(shí),此協(xié)議決定了每個(gè)控制器須要知道它們的設(shè)備地為在此網(wǎng)絡(luò)上使用的幀或包結(jié)構(gòu)。這種轉(zhuǎn)換也擴(kuò)展了根據(jù)具體的網(wǎng)絡(luò)解決節(jié)中斷結(jié)組態(tài)數(shù)據(jù)更新緩組態(tài)緩沖區(qū)初始化為10獲得當(dāng)前組態(tài)數(shù)據(jù)長度和指開ModBus2ModBus22PC通信的ModBusModBus系統(tǒng)只能使用一種2ASCII(美國信息交換碼),另一種模式是RTU(遠(yuǎn)程終端設(shè)備。本設(shè)計(jì)采用的是RTUCRC校驗(yàn)。有效位(MSB)首選發(fā)送。報(bào)文先與X↑16相乘(16位)CRCMSB。由于在運(yùn)算中不個(gè)寄存器進(jìn)行“異或”運(yùn)算;若向右移出的數(shù)位是0,則返回③。⑦重復(fù)③~⑥,16CRC16CRC1X↑16+X↑15+X↑2+1存器值為0000或FFFFH。①讀可讀寫數(shù)字量寄存器(線圈狀態(tài)0188位]8位]8位][CRC8位][CRC80)。比如例子中的起始地址為19。處需要注意,CRC校驗(yàn)在命令中的高低字節(jié)的順序和其他的相反。設(shè)備響應(yīng):[設(shè)備地址][命令號(hào)01][返回的字節(jié)個(gè)數(shù)][數(shù)據(jù)1][數(shù)據(jù)2]...[n][CRC8[CRC8<2>1,2...nn節(jié)的高位部分無意義,置為0。②讀只可讀數(shù)字量寄存器(輸入狀態(tài)③寫數(shù)字量(05]805]8<488位:表明需要下置的開關(guān)量的狀態(tài)。例子中為把④讀可讀寫模擬量寄存器(保持寄存器0)。比如例子中的起始地址為107。設(shè)備響應(yīng):[設(shè)備地址][命令號(hào)03][返回的字節(jié)個(gè)數(shù)][數(shù)據(jù)1][數(shù)據(jù)2]...[n][CRC8[CRC8<2>1,2...nn的值。例子中返回了3個(gè)模擬量的數(shù)據(jù),因?yàn)橐粋€(gè)模擬量需要2個(gè)字節(jié)所以共6回的值分別是555,0,100。⑤讀只可讀模擬量寄存器(輸入寄存器和讀取保存寄存器類似,只是第二個(gè)字節(jié)的命令號(hào)不再是24⑥寫單個(gè)模擬量寄存器(保持寄存器例:[11][06][00][01][00][03][CRC低][CRC意義如下<1>設(shè)備地址和上面的相同<2>命令號(hào):寫模擬量的命令號(hào)固定為06就把1號(hào)寄存器的值設(shè)為3。<5>注意此命令一條只能下置一個(gè)模擬量的狀態(tài)設(shè)備響應(yīng):如果成功把計(jì)算機(jī)發(fā)送的命令原樣返回,否則不響應(yīng)(4)MODBUS校驗(yàn)正地址正是定時(shí)掃描中斷程序流程結(jié)接收響應(yīng)數(shù)發(fā)送詢問數(shù)否是數(shù)據(jù)緩接收余下幾位數(shù)開4建4建立OPC服OPC(OLEforProcessControlOLE)是一個(gè)工業(yè)標(biāo)準(zhǔn),管理這個(gè)標(biāo)準(zhǔn)國際組織是OPC基金會(huì),OPC基金會(huì)現(xiàn)有會(huì)員已超過220家。遍布全OLE(ActiveX)、COMDCOM部件對(duì)象模型)技術(shù)。OPCOPC全稱是OLEforProcessControl,它的出現(xiàn)為基于Windows的應(yīng)用程序OLE/COM接口完成的,在OPC技術(shù)中使用的是OLE2技術(shù),OLE標(biāo)準(zhǔn)允許多臺(tái)微機(jī)interfaceinterface接口,可以使用VisualBasic、Delphi、PowerBuilder等編程語言開發(fā)OPC服務(wù)器的客戶應(yīng)用。而自定義接口是專門為C++等高級(jí)編程語言而制定的標(biāo)準(zhǔn)接不能全方位地支持OPC,則必將被歷史所淘汰。OPC(OPCOPC軟件接口標(biāo)準(zhǔn)。數(shù)據(jù)源可以是PLC,DCS,條形碼讀取器等控制設(shè)備。隨控制系OPC接口既可以適用于通過網(wǎng)絡(luò)把最下層的控制設(shè)備的原始數(shù)據(jù)提供給作 SIMETIC系列軟件的安裝及其介進(jìn)行安裝前,先看看安裝盤里的Readme文件,了解STEP7V5.4 SIMETIC系列軟件的安裝及其介進(jìn)行安裝前,先看看安裝盤里的Readme文件,了解STEP7V5.4對(duì)軟件及硬STEP7V5.4512MB,推薦安裝內(nèi)存1GB。17Acrobat(如已安裝,可不選擇擇。軟件中包含了V5.4S7-SCL,S7-GRAPH,S7-PLCSIM,中,根據(jù)具體情況進(jìn)行選擇(見圖18。18STEP7-Micro/WIN32Windows的應(yīng)用軟件,功能強(qiáng)大,主要用4.218STEP7-Micro/WIN32Windows的應(yīng)用軟件,功能強(qiáng)大,主要用4.2Profibus通過CP5611建立主2、在中組態(tài)PCStationPCStaionConfigurationEditor212222HW22HWConnection”Insert->NewConnection(local24PCStation24PCStationStationConfigurationEditor19所示,“Run/Stop”會(huì)顯示綠色。9)打開Start->SimaticNet->ConfigurationConsole254.3OPC的數(shù)據(jù)傳OPCScout1)打4.3OPC的數(shù)據(jù)傳OPCScout1)打點(diǎn)擊26已組態(tài)的從站,點(diǎn)擊“SlaveQB”I/M/Q/DB272828295ProfibusDP應(yīng)用實(shí)5.1MCGS軟件的Profibus通3031325.2WINCC軟件的Profibus通5.2WINCC軟件的Profibus通33在WINCC3435363635363637結(jié)結(jié)查??傮w的檢查順序應(yīng)該是原理圖、PCB加耐心細(xì)致謹(jǐn)慎靈活更富有創(chuàng)新能力受益匪淺致謝致謝參考文梁濤云利軍..PROFIBUS-DP現(xiàn)場(chǎng)總線智能從站通信協(xié)議研究[J][5參考文梁濤云利軍..PROFIBUS-DP現(xiàn)場(chǎng)總線智能從站通信協(xié)議研究[J][5]王素娥郝鵬飛.PROFIBUS-DP現(xiàn)場(chǎng)總線通信轉(zhuǎn)換接口的設(shè)計(jì)[J[6PROFIBUS[MPROFIBUS)[7]張永德徐秀杰.從RS-232到Profibus-DP的轉(zhuǎn)換接口設(shè)計(jì)[J].自動(dòng)化儀[8[M附錄一:原理附錄二:程序清附錄二:程序清{UBYSPC3_RESET_SET0x0SPC3_RESET_CLR0xFFI_ENABLE11extdiagmain(void);(struct2main(void);(struct2}IEN=IEN=2cfg_akt[20];DPS2_IO_DATA_LENSPC3_DATA_ATTR*user_io_data_len_ptr;#pragmapublicstructdps2_bufSPC3DATAprm_tst_buf[32]=enumERRORCODESprm_tst_buf[32]=enumERRORCODESSPC3xdataspc3_at_0x1000;//SPC3首先利用開發(fā)包中DPS2SPC3進(jìn)行初始化,允許外部中INT0,設(shè)INT0為voidmain{UWORDidataii;//xdata*loesch;==OSCICN0x16;//8MUart1_SendString("JesseReidetermine\r\n");SPC3_RESET=SPC3_RESET_SET;for(ii=400;ii;ii--);SPC3_RESET=SPC3_RESET_CLR;SPC3_INTERRUPT_ENABLE=!I_ENABLE;SPC3_INTERRUPT_PRIOR=P_HIGH;loesch=for(zaehl=0x16,i=0x16;zaehl<=0x05ff;{*(loesch+zaehl)=}for(i=0;i<2;{(*(io_byte_ptr+i))=}ident_numb_high=ident_numb_lowIDENT_LOW;real_no_add_chgTRUE;user_dps_reset();//重新設(shè)置一下SPC3real_no_add_chgTRUE;user_dps_reset();//重新設(shè)置一下SPC3GLOBAL_INTERRUPT_ENABLE=I_ENABLE;//開啟全局中斷for{zyk_wd_state=SPC3_GET_WD_STATE();zyk_dps_state=DPS2_GET_DP_STATE();Profibus-DPSPC3需要完成的任務(wù)主要包括以下3步:產(chǎn)生DX-Out中斷;DPS2_SET_IO_DATA_LEN(if(DPS2_POLL_IND_DX_OUT())//{user_output_buffer_ptr=for(i=0;i<user_io_data_len_ptr->outp_data_len;{(*((io_byte_ptr)+i))=(*(((UBYTESPC3_PTR_ATTR*)user_output_buffer_ptr)+i));Uart1_SendByte(*((io_byte_ptr)+}}/*入緩沖區(qū)的指針,用宏DPS2_INPUT_UPDATE()用戶可以重復(fù)地將輸入數(shù)據(jù)從用戶端傳送到DPS2,并取得可用的輸入緩沖區(qū)指針,用于接收新的輸入數(shù)據(jù)。輸for(i=0;i<user_io_data_len_ptr->inp_data_len;SPC3*(((UBYTESPC3_PTR_ATTR*)user_input_buffer_ptr)+i)=0xAA;//*((io_byte_ptr)+i);}userinputbufferptr=DPS2INPUTUPDATE();/由NEW_DIAG_CMD啟動(dòng)診斷數(shù)據(jù)的傳送;DPS2_GET_DIAG_BUF_PTR(DPS2_SET_DIAG_LEN(6~244字DPS2_DIAG_UPDATESPC3用戶診斷緩沖區(qū),并返回一個(gè)新的診斷數(shù)據(jù)緩沖區(qū)指針。SPC3接收到New_Diag_CmdSPC3SPC3查詢到診斷緩沖區(qū)的數(shù)據(jù)發(fā)送完成后,用戶需要置診斷緩沖區(qū)可用標(biāo)志位。如果沒有外部診斷數(shù)據(jù)傳送,或在診斷數(shù)據(jù)被傳出前被刪除,SPC36從站診斷數(shù)據(jù)響應(yīng)來自Profibus-DP6if{user_diag_flagTRUE;}}}編譯器設(shè)置:針對(duì)選用的微處理器選用合適的編譯器,用設(shè)置SPC3設(shè)置SPC3中斷屏蔽寄存器:宏DPS2_SET_IND()激活SPC3中斷觸發(fā),SPC3內(nèi)部看門狗設(shè)置:用戶看門狗用于確保在微處理器出現(xiàn)故障時(shí),SPC3能在DPS2_SET_USER_WD_value(X)離開數(shù)據(jù)交換通信狀態(tài),只要微處理器沒有問題,則需不斷地用DPS2_RESET_USER_WD重新觸發(fā)看門狗電路;SPC3芯片中;為SPC3設(shè)置最小的從站響應(yīng)時(shí)間;DPS2_BUFINITDPS2_SET_BAUD_CNTRL式。在此監(jiān)視定時(shí)值過后,如果沒有有效的信息被接收,SPC310ms,其時(shí)間范圍為10ms~650s。*/voiduser_dps_reset{DPS2_SET_IDENT_NUMBER_HIGH(ident_numb_high);//設(shè)置產(chǎn)品識(shí)別號(hào)IDSPC3_SET_HW_MODE(SYNC_SUPPORTED|FREEZE_SUPPORTED|INT_POL_LOW|如果可以改變?yōu)?x0,否則為0xff{}{}dps2_buf.din_dout_buf_len244;//0-448dps2_buf.diag_buf_lensizeof(structdiag_data_blk);//dps2bufcfgbuflen10;//1-244dps2_buf.ssa_buf_len=0;dps2_init_result=SPC3_INIT(&dps2_buf);if(dps2_init_result!=SPC3_INIT_OK)//{{error_code=INIT_ERROR;}}=dps2_buf.ssa_buf_len=0;dps2_init_result=SPC3_INIT(&dps2_buf);if(dps2_init_result!=SPC3_INIT_OK)//{{error_code=INIT_ERROR;}}=cfg_akt[0]=CONFIG_DATA_INP;cfg_akt[1]=CONFIG_DATA_OUTP;cfg_len_akt=2;/*Example0x13/*Example0x23=if(user_io_data_len_ptr!=(DPS2_IO_DATA_LEN{}{{error_code=IO_LENGTH_ERROR;}}user_input_buffer_ptr=DPS2_GET_DIN_BUF_PTR();user_diag_buffer_ptr=DPS2_GET_DIAG_BUF_PTR();user_diag_flag=TRUE;user_baud_valueSPC3_GET_BAUD();//獲得波特率值SPC3_START();//啟動(dòng)SPC3}voiduser_error_function(enumERRORCODES{while(1);}voidbuild_diag_data_blk(structdiag_data_blk*{---------voidbuild_diag_data_blk(structdiag_data_blk*{-------------------header=(diag_len-6);/*subtractthe}=prm_tst_buf[0];/*DPextdiag=================voidDelay_us(unsigned{unsignedintfor(i=0;i<times;{}}voidDelay_ms(unsignedint{unsignedintfor(i=0;i<times;i++)}1#defineSPC3_DPS2#includeDPSCFGSFSPC3_BUF_START((UBYTE)(((UWORD)(dps2_base_ptr#includeDPSCFGSFSPC3_BUF_START((UBYTE)(((UWORD)(dps2_base_ptr-\(UBYTESPC3_PTR_ATTR*)&spc3))>>3))UBYTEDPS2_BUFINITdps2_binit;idataWORDdps2_buf_len=0;UBYTESPC3_PTR_ATTR*dps2_base_ptr(UBYTESPC3_PTR_ATTR*)0;/*bufferbaseaddress*/DPS2_IO_DATA_LENio_data_len;/*Struct.f.IO-lens*/SPC3SPC3_PTR_ATTRspc3;SPC3_DATA_ATTR*assign,WORD{min_len=0xffff;min_step=0;BYTEif((count<2)||(count>{return}count;for(i=0;i{pos[i]=}for(i=0;i{count;lensx[i]=}for(i=0;i<count;{lensx[i]=(lensx[i]+7)&}for(i=0;i<count-1;{for(j=i+1;j<count;{if(lensx[i]<{lensfor(i=0;i<count;{lensx[i]=(lensx[i]+7)&}for(i=0;i<count-1;{for(j=i+1;j<count;{if(lensx[i]<{lenslx=lensx[i];lensx[i]=lensx[j];lensx[j]=lx;px=pos[i]=pos[j]}}}for(i=count-{if(lensx[i]{count--}}if(count=={min_len=}i>=0;i--/*error:nospecifiedfor(step=0;step<count;{aux_len[0]=for(i=step;i<count;{{}<=}for(i={==istep+aux_len[0]*(count-<step;if(aux_len[1]<{aux_len[1]=}}aux_len[1]=aux_len[1]*(step+1);if((aux_len[0]if(aux_len[1]<{aux_len[1]=}}aux_len[1]=aux_len[1]*(step+1);if((aux_len[0]+aux_len[1])<min_len){min_len=aux_len[0]+aux_len[1];min_step=step;}}aux_len[0]=for(i=min_step;i<count;{if(aux_len[0]<{aux_len[0]=}}for(i=min_step;i<count;{lens[pos[i]]=}aux_len[1]=for(i=0;i<min_step;{if(aux_len[1]<{aux_len[1]=}}*assign=0;/*initialallbuffersfor(i=0;i<min_step;i++){lens[pos[i]]=*assign|=0x1<<}return}toAUX-buffer1DPS2_IO_DATA_LENSPC3_DATA_ATTR(UBYTESPC3_PTR_ATTR*cfg_ptr,UWORD{UBYTEresult_ok=TRUE;if((cfg_len>{for(;result_ok=TRUE;if((cfg_len>{for(;{count===&&(cfg_len<=>0)&&result_ok;cfg_len-=(*cfg_ptr&{if(*cfg_ptr&DPS_CFG_LENGTH_IS_WORD_FORMAT){length*=}if(*cfg_ptr&{temp_outp_data_len=temp_outp_data_len+}if(*cfg_ptr&{temp_inp_data_len=temp_inp_data_len+}cfg}{if(*cfg_ptr&{&DPS_CFG_SF_LENGTH)+1);+&{}=+{temp_outp_data_len=temp_outp_data_len+}}if(*cfg_ptr&{=+&DPS_CFG_SF_LENGTH)+1+&{temp_outp_data_len=temp_outp_data_len+}}if(*cfg_ptr&{=+&DPS_CFG_SF_LENGTH)+1+&{}{}}=+=temp_inp_data_len+=&if(specific_data_length{count=(UBYTE)(count++cfg_ptr=cfg_ptr+}{result_ok=}}}if((cfg_len!=0)||(((UWORD)temp_inp_data_len+7)&0xfff8+((UWORD)temp_outp_data_len+7)&0xfff8)>dps2_binit.din_dout_buf_len){result_ok=}}{result_ok=}if{==}{}*){result_ok=}if{==}{}*)}012DPS2_BUFINITSPC3_DATA_ATTR*dps2_bptr,UBYTEfdl_init,UBYTESPC3_INIT_RET{aux_buf_len[2];//AUXWORDidatar_din_dout_buf_len;// UBYTESPC3_PTR_ATTR*spc_uptr;enumSPC3_INIT_RETretSPC3_INIT_OKdps2_buf_len=j=spc3.is_reg.status[_IML];//&&if(SPC3_GET_OFF_PASS()) {return}USERSPC3.C中設(shè)定了一個(gè)緩沖器結(jié)構(gòu)變量,并且賦了最大值dps2baseptrbptr;//bptrif(dps2_binit.din_dout_buf_len>{ret=}if((dps2_binit.diag_buf_len<6)||(dps2_binit.diag_buf_len{ret=if(dps2_binit.din_dout_buf_len>{ret=}if((dps2_binit.diag_buf_len<6)||(dps2_binit.diag_buf_len{ret=}if((dps2_binit.prm_buf_len7)||(dps2_binit.prm_buf_len{ret=}if((dps2_binit.cfg_buf_len1)||(dps2_binit.cfg_buf_len{ret=}if(dps2_binit.ssa_buf_len{}{{ret=}}{returnret;}{real_buf_len[RBL_PRM]=0;/*Prm.viaAUX}{real_buf_len[RBL_PRM]=}real_buf_len[RBL_CFG]=real_buf_len[RBL_SSA]=&aux_ass,+=real_buf_len[RBL_CFG];/*wg.Read-Configr_din_dout_buf_len=(dps2_binit.din_dout_buf_len+7)dps2_buf_len+=((dps2_binit.diag_buf_lenreal_buf_len[RBL_CFG]=real_buf_len[RBL_SSA]=&aux_ass,+=real_buf_len[RBL_CFG];/*wg.Read-Configr_din_dout_buf_len=(dps2_binit.din_dout_buf_len+7)dps2_buf_len+=((dps2_binit.diag_buf_len+7)&0xf8)*2;{dps2_buf_len+=real_buf_len[RBL_PRM];spc3.r_len_spec_prm_buf=dps2_binit.prm_buf_len;}{spc3.r_len_spec_prm_buf=}dps2_buf_len+=r_din_dout_buf_len*3;if(dps2_buf_len>sizeof(spc3.user)){dps2_buf_len=dps2_base_ptr=return}spc3.r_aux_buf_sel=/*assignAUX-buffersspc3.r_diag_buf_ptr[0]=SPC3_BUF_START+*spc3.r_diag_buf_ptr[1]=spc3.r_diag_buf_ptr[0]++7)&(((dps2_binit.diag_buf_len+7)&(auxbuflen[0]>>3);=+=+=+=+=+if(real_buf_len[RBL_SSA]=={spc3.r_ssa_buf_ptr=}{}=+spc3.r_len_diag_buf[0]=spc3.r_len_diag_buf[1]=6;spc3.r_len_cfg_buf=dps2_binit.cfg_buf_len;spc3.r_len_prm_buf=dps2_binit.prm_buf_len;spc3.r_len_cntrl_buf[0]=aux_buf_len[0];spc3.r_len_cntrl_buf[1]=aux_buf_len[1];spc3.r_len_ssa_buf=dps2_binit.ssa_buf_len;spc3.r_len_din_buf=spc3.r_len_dout_buf=0;spcuptr=(UBYTESPC3PTR<{=*(spc_uptr+=}{{}=+spc3.r_len_diag_buf[0]=spc3.r_len_diag_buf[1]=6;spc3.r_len_cfg_buf=dps2_binit.cfg_buf_len;spc3.r_len_prm_buf=dps2_binit.prm_buf_len;spc3.r_len_cntrl_buf[0]=aux_buf_len[0];spc3.r_len_cntrl_buf[1]=aux_buf_len[1];spc3.r_len_ssa_buf=dps2_binit.ssa_buf_len;spc3.r_len_din_buf=spc3.r_len_dout_buf=0;spcuptr=(UBYTESPC3PTR<{=*(spc_uptr+=}{=++(SPC3_ADTYP)&spc3)))=0xff;dps2_buf_len+=spc3.r_len_ddbout_buf=spc3.r_ddbout_buf_ptr=spc3.r_len_ddb_prm_buf=spc3.r_ddb_prm_buf_ptr=}return}{{=--)-returndps2_base_ptr+}{*buf_len=0;}{UBYTEri_len,{*buf_len=0;}{UBYTEri_len,ro_len;UBYTEri_off;UBYTE/*reallens/*input-buffer-if(len_ptr->outp_data_len>{return}if(len_ptr->inp_data_len>{return}(UWORD)len_ptr->outp_data_len>{return}spc3.r_len_dout_buf=len_ptr->outp_data_len;spc3.r_len_din_buf=len_ptr->inp_data_len;ro_len=((len_ptr->outp_data_len)+7)>>3;ri_len=((len_ptr->inp_data_len)+7)>>3;for(i=0;i<sizeof(spc3.r_dout_buf_ptr);i++){spc3.r_dout_buf_ptr[i]=SPC3_BUF_START+}ri_off=ro_len*sizeof(spc3.r_dout_buf_ptr);for(i=0;i<sizeof(spc3.r_din_buf_ptr);{+*spc3.r_din_buf_ptr[i]=SPC3_BUF_START+ri_off+ri_len*}return}UBYTE{spc3.x1.w.mode_reg1_r=EN_CHG_CFG_BUFFER;returnspc3.user_cfg_data_ok;}UBYTE}UBYTE{spc3.x1.w.mode_reg1_s=EN_CHG_CFG_BUFFER;spc3.r_len_read_cfg_buf=spc3.r_len_cfg_buf;returnspc3.user_cfg_data_ok;}UBYTE{spc3.x1.w.mode_reg1_r=EN_CHG_CFG_BUFFER;returnspc3.user_cfg_data_nok;}voidSPC3_PTR_ATTR*dps2_output_update_state(UBYTE){UBYTEtemp=*state_ptr=temp&(NEW_DOUT_BUF|DOUT_BUF_CLEARED);return(voidSPC3_PTR_ATTR*)((((SPC3_ADTYP)(spc3.r_dout_buf_ptr[(temp&0x03)-+}voidSPC3_PTR_ATTR*{UBYTEtemp=spc3.new_diag_buffer_cmd&0x03;{case /*bufferwithIndex0{return(voidspc3.r_diag_buf_ptr[0])<<3)+}case /*bufferwithIndex1{return(voidspc3.r_diag_buf_ptr[1])<<3)+}{return}}#includeaddress_data_function(voidSPC3_PTR_ATTR*,UBYTE);wd_dp_mode_timeout_function(void);global_ctrl_command_function(void);go_leave_data_ex_function(void);}#includeaddress_data_function(voidSPC3_PTR_ATTR*,UBYTE);wd_dp_mode_timeout_function(void);global_ctrl_command_function(void);go_leave_data_ex_function(void);012cfg_akt[20];DPS2_IO_DATA_LENSPC3_DATA_ATTR*user_io_data_len_ptr;UBYTESPC3_DATA_ATTRprm_tst_buf[];SPC3SPC3_PTR_ATTRvoidinterrupt using{{{}if(DPS2GETINDNEWPRMconfirmthisindication{/*===Newdata===*/ SPC3_PTR_ATTRprm_result=DPS2_PRM_FINISHED;{{/*===Newdata===*/ SPC3_PTR_ATTRprm_result=DPS2_PRM_FINISHED;{prm_ptr=DPS2_GET_PRM_BUF_PTR();param_data_len=DPS2_GET_PRM_LEN();if(param_data_len>7){if((*(prm_ptr+8)==0xAA)&&(*(prm_ptr+9)==0xAA))prm_result=DPS2_SET_PRM_DATA_NOT_OK();for(ii=0;ii<param_data_len&&ii<10;prm_tst_buf[ii]=*(prm_ptr+ii+7);prm_result=}}prm_result=}while(prm_result==DPS2_PRM_CONFLICT);store_mintsdr=*(prm_ptr+3);//結(jié)束參數(shù)中斷事件}{/*===NewConfigurationdataUBYTESPC3_PTR_ATTR*UBYTEconfig_data_len,cfg_result,result;cfg_result=DPS2_CFG_FINISHED;result=DPS_CFG_OK;{cfg_ptr=DPS2_GET_CFG_BUF_PTR();config_data_len=DPS2_GET_CFG_LEN();if(config_data_len!=2)cfg_result=DPS2_SET_CFG_DATA_NOT_OK();{if&&result=DPS_CFG_OK;if(((cfg_ptr[0]==0x13)&&(cfg_ptr[1])||((cfg_ptr[0]==0x11)&&(cfg_ptr[1]){cfg_akt[0]=cfg_ptr[0];cfg_akt[1]=cfg_ptr[1];result=if(((cfg_ptr[0]==0x13)&&(cfg_ptr[1])||((cfg_ptr[0]==0x11)&&(cfg_ptr[1]){cfg_akt[0]=cfg_ptr[0];cfg_akt[1]=cfg_ptr[1];result=DPS_CFG_UPDATE;}result=DPS_CFG_FAULT;if(result==DPS_CFG_UPDATE){dps2calculateinpoutplen(cfgptr,(UWORD)configdata=if(user_io_data_len_ptr!=(DPS2_IO_DATA_LEN{}result=}}switch{=}}=}while(cfg_result==}{{/*===WatchdogisrunoutDPS2_CON_IND_WD_DP_MODE_TIMEOUT();/*confirmthisindication{/*====TimertickreceivedDPS2_CON_IND_WD_DP_MODE_TIMEOUT();/*confirmthisindication{/*====Timertickreceived{if((DPS2_GET_DP_STATE()==DPS2_DP_STATE_WAIT_CFG}#pragmaUBYTEaddress_data_len){structdps_address_dataSPC3_PTR_ATTR*addr_ptr;addr_ptr=this_station=addr_ptr->new_address; real_no_add_chgaddr_ptr->no_add_chg;//是否允許再次改變從站地址}#pragmapublic#pragmavoidwd_dp_mode_timeout_function{UBYTEuser_wd_state=SPC3_GET_WD_STATE();rueck=DPS2_SET_DIAG_LEN(6);rueck=DPS2_SET_DIAG_STATE(0x00);}#pragmapublic#pragmavoidglobal_ctrl_command_function{user_global_ctrl_command=}#pragma#pragmavoidgo_leave_data_ex_function{user_dps_state=}#pragmapublic#include"c8051f020.h"voidSYSCLK_Init(void){intOSCXCN=for(i=0;i<256;i++);while(!(OSCXCN#pragmavoidgo_leave_data_ex_function{user_dps_state=}#pragmapublic#include"c8051f020.h"voidSYSCLK_Init(void){intOSCXCN=for(i=0;i<256;i++);while(!(OSCXCN&0x80));OSCICN=0x88;等待1ms}voidPORT_Init{==//設(shè)置 UART0ENSPI0ENXBR1INT1ET1EINT0E0x44;//打開交叉開關(guān)和弱上拉,XBAREP0MDOUT=|=P1MDIN=P1MDOUT=P1=/INT0->P2^3T1->P2^4/INT1-P2|=0x00;P2P2.0P2.3來做為/INT0中斷入口P3=0X00;//設(shè)置P3口輸出,P3.0高組,其他低電平輸出復(fù)用端口配置為漏極開路!P7配置為漏極其他推挽P4-P7MOVX只尋址片外XRAM。EMI0TC0x1F;//外部存儲(chǔ)器時(shí)序控制TCON=0x01;//INT0是邊沿觸發(fā)} uarthSYSCLKTMR1248SYSCLKTMR1248TR1=1ET1=0;PT1=0Tmer11,模式2,8位重載#defineTMOD=(TMOD&0X0F)|0X20//TMOD:定時(shí)器Uart1_Init(unsignedcharBaudRate);Uart1_SendString(unsignedchar*pt);Uart1_SendByte(unsignedchar英文資料及中文翻States,英文資料及中文翻States,thenController)iscontroller[15]isthefirstinthelate1960sintheUnitedPlcprogrammablelogiccontroller(Programmabletoreplacerelays.Fortheimplementationofthejudgement,timing,sequencenumber,andothercontrolfunctions.TheconceptispresentedPlcGeneralMotorsCorporation.Plcandthebasicdesignisthecomputerfunctionalimprovements,flexible,genericandotheradvantagesandrelaycontrolsystemsimpleandeasytooperate,suchastheadvantagesofcheappricescombinedcontrollerhardwareisstandardandoverall.Accordingtothepracticalapplicationoftargetsoftwareinordertocontrolthecontentoftheuserproceduresmemorycontroller,thecontrollerandconnectingtheaccusedconvenienttarget.Inthemid-1970s,thePlchasbeenwidelyusedasacentralprocessingunitmicroprocessor,importexportmoduleandtheexternalcircuitsareused,large-scaleintegratedcircuitsevenwhenthePlcisnolongertheonlylogical(IC)judgementfunctionsalsohavedataElectrotechnicalCommission(IEC)standardspromulgatedcontrollerforprogrammablecontrollerdraftmadethefollowingdefinitionprogrammablecontrollerisadigitalelectroniccomputersspecificallyforapplicat
溫馨提示
- 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年丹東輔警協(xié)警招聘考試真題附答案
- 2025年山東外事職業(yè)大學(xué)輔導(dǎo)員招聘考試真題匯編附答案
- 2025廣東東莞市公安局石碣分局警務(wù)輔助人員招聘22人(第4批)參考題庫及答案1套
- 2025廣東江門鶴山市社會(huì)福利院招聘5人備考題庫及答案1套
- 2025廣東清遠(yuǎn)英德市大站鎮(zhèn)人民政府招聘專職消防員1人參考題庫附答案
- 2025廣西北海市交通運(yùn)輸綜合行政執(zhí)法支隊(duì)招聘1人參考題庫含答案
- 2025廣西防城港市東興邊檢招聘輔警15人備考題庫附答案
- 2025至2030新能源汽車產(chǎn)業(yè)鏈深度剖析及市場(chǎng)前景與資本布局策略研究報(bào)告
- 2025-2030中國真空杯行業(yè)市場(chǎng)全景調(diào)研及投資價(jià)值評(píng)估咨詢報(bào)告
- 2026中國城市規(guī)劃設(shè)計(jì)研究院分支機(jī)構(gòu)招聘高校畢業(yè)生30人備考題庫及一套完整答案詳解
- 2025數(shù)據(jù)基礎(chǔ)設(shè)施參考架構(gòu)
- T-CITS 529-2025 應(yīng)答器傳輸系統(tǒng)車載設(shè)備 帶內(nèi)抗擾度試驗(yàn)方法
- 醫(yī)學(xué)人工智能課題申報(bào)書
- 新產(chǎn)品轉(zhuǎn)產(chǎn)流程標(biāo)準(zhǔn)操作手冊(cè)
- 小兒運(yùn)動(dòng)發(fā)育遲緩課件
- 會(huì)計(jì)師事務(wù)所審計(jì)失敗原因及對(duì)策研究
- 安全員合署辦公制度培訓(xùn)課件
- (正式版)DB42∕T 900-2013 《公路隧道監(jiān)控量測(cè)技術(shù)規(guī)程》
- 2025年西門子plc1200試題及答案
- 【高考生物】2026步步高大一輪復(fù)習(xí)講義第九單元 生物技術(shù)與工程第55講 基因工程的應(yīng)用和蛋白質(zhì)工程含答案
- 餐飲食堂項(xiàng)目經(jīng)理實(shí)訓(xùn)培訓(xùn)指引
評(píng)論
0/150
提交評(píng)論