工控培訓教程、手冊合集現場總線控制系統_第1頁
工控培訓教程、手冊合集現場總線控制系統_第2頁
工控培訓教程、手冊合集現場總線控制系統_第3頁
工控培訓教程、手冊合集現場總線控制系統_第4頁
工控培訓教程、手冊合集現場總線控制系統_第5頁
免費預覽已結束,剩余506頁可下載查看

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

??1FieldbusCow ?????????ウ??????????ウ?????о????????????????????ъ?????????????????????????????а?????????? ????????r????reuc??????????????????????????? ?????????????????

?

???????????□ 亴????????????????? ?????????????????? ? ?????????? ???? ? ????????а? ??????????? ???? ???? ??????????????о????????????????? ???? ??????????????????????????????????й????????????????????????????????????????????????????????????????????

R??????????????????????????

????????????????????????情????????? ?????????????????????????????????? ?????????????????????????? ???????????????? ?????????????? ???????????????о?????????亴??????????????? ????????????????っ??? к?????????????????????????а????????? ???????

??

?w.PL ??????????????????????????????????????????????????????????????????????????????????? ?????????? ???????

? ?

??

???

? SCC+????

????????SCC+DCC?????н???????а??SCC+?????а??SCC+DDC????????? ??????DDC?????????SC???DDC?????????????н??? ????????亪?????????????????

??????????????????????????????? ????й????а???????????? ??

?????ㄉ?????ㄉ?????ㄉ ?

???????????????????????ㄉ????????”?????????????????↓?? ??????ㄉㄉHHHH ??? ????H ???H1H???? ???????????????1????????????????????????? ? ??? ?

?0mа?а

??????????

□???????????????? ? ?????о????Φ???? ??♀Φ‐?????

????????3C????

□????????????????????亶?а?????亶???????????????ъ????亶???? ????儈 ????????????? ??????????????????亶

享?????? ??????? ???? ??????????┑???????ъ ?????????? ??????????????????(F????? ?????? ㄉ? ???????www1HM ???? ? ? ?????? ?? ??? ????????? 儈??????? ????仈??????????ъ??ъ ъ???ъ???ъ???? ???? ??????????????????‐? ??????∮∮?

??LCL??? ????????????ξ???????? ???????????? ?? ?? ? ???????‐?ψ??????1????????????????????????1?5V?4?20mA??????????????????????2???????????PLC?????????????????????????????儈????????????????仾?儈???????????????????л??3???????????DCS???20ц????????????????S??оо????к??????? ???л??л??????????? ?л???????????? ?????????????? ????????儈??????н???н???DS????????????н????DS?Sок?nrn?Intrt??????????????DC?S???к?□у?????н???????????фDCS? ????????????????4??????????FCS??亪??к?????????а? ??????????????????????????????????л????????????????????FCS???ок?а?? ????о1??

?I?л???????ISASP50?????????1985?????????????????????о????а??????????????????????????о????а???????????????????ウ????????????????????????ц?к????????學?200?????必嵌??ㄎ??????? ???? ???? ????????? ???? ???????????????н???????а??????????????????????????н???????????а??????????????????а????ц?????????2.?????????????????orofsusr?f??????????????????????????????????????????狀???營o金twft???н?亶???????????亶???????s??ofross????????????????ъ?????usus????? ???????? ????????ISO????? ????OSI??????????г???й?? ?OSI????а?? ????????????г???????? ??о??□??????????????????а????????????????????□?????????????????????????

Tower

??僞???????????ж?????ж???????? 3.2??????Ethernet/HighwayI/OI/O??“?“???????????90???????????????????????????????????о?儈???????????????????? ??????FCS????50??????????????????????????????????? ?????????????й??????????70???????????DCS□ а???? ??FCSケ??DCS??у? ???????????? ???????????????а??FCS?а????DCS??????????????????л ???????????DCS?????????????????????ъ??亶?????╄??????4????(1)?? ????(2)?????(3)????ф? (4)???? ????(5)????儎(6)???? ????.?????????? ?? ??????? ?????

?

??? ???????????о???????? ?????????? ???????????????? ???4.2??????????? о??????????? ??????亶?а????к ? ???????? ??????????儈?????????????????????5.?????? ????——???????????????????????????????????????????? ?????????????????? ??????????????????999???????8??IEC61158????Tpe空????elNntrolNet tleronl

?IEC61158??????а??? 8?學??efibuspet eypyeHS?TpeSiftNTTtNTperldPrld:PTpterbusttu

?????IE????????? ?ууr?file?EC?2??pe8?Typ1????????н?Type2Type8 ????????學

?ж?ж????????? ?????? ? ??

?????2003?4??IEC61158Ed3?????????????0?學??????6158???Type2ControlNetEthenetIP????????Type3s????????Type?T??? Type?SE????????Type6t???????Type7rldFP???????e91???????Type10e91???????Type10PFnt????????IEC61158yp????????????Ⅻ??

??? ??——?????????? ????????I???——?????????? ????∮Х?—? ?? ? ?????????????□????? ???????? 儈???點

????????????????????儈???????????ps?ps?ps????????????????????? ??? ?????????????????????????? ?а????? ???? ?а???? ??0? ???н???1 MI.co

????????????????θ???????θ??р??? ????????-??????Ⅻ ???LS???L???

????-??‐?????????? ‐???? 饋?????模???模S

? ?

?client/server

? ??

??о??????S??????O???? ? ????????M(X)=1101????畝???2? ?1?н??? ???????????儈????????儈??0??0?????G(X)?儈 M’(X)=M(X)???????2????:M’(X)/G(X),???XXX(K?)??CRC?傼??????M(X)XXX?傼?

??????н???G(X)???0?↓???н?0????н?????????????????????? DDDD?

??????????t?ttrttrt??????

? ?ㄏ?ㄏ

?????

???? ???????????κ??κ?????Type4PType6

??? ? ????◤???δ??????

???∠??Type2ControlNetType3ProfiBusType7WorldFIPType8InterBusType1IEC??Type5FFHES

?PLC?????? ?????????Ч????кж??I/O????????????? ??????????IEC?FF ??????? ∠???????к?IEC???????????RT????? ??????其LonWorks???????? ??????????∮??κ它N???????????????????????п■?????6展????? rtt情??? ?高

??аа??????????rt??vtv?????ruo????lrotrolotrol>????????rGtrf?? ????ケ?????????????????? ?????????????? ケ??ケ? ?????????? ㄉ??а?????? □????к???????ㄉ???ㄉ□??? ?????????лаㄉ?? ?????ㄉ?????????????????ㄉал??ㄉ?????????????????ㄉал??лаㄉ?ал?⌒???????CSMA?CarrierSenseMultipleAccess??а?????????? ?????? ????“www.LCworldn

CSMA/CD?????“????? ?????1????? ?オ??? ?2? ????????? ?オ??????3?? ????ケ??????ケ??→???????к? а? ????????1??????к??ケ? ㄉ?? ??оㄎ?4??? ㄉ ????а????????????CSMA/CD??????ㄉ??????⌒慮管??? ???ケ ? ???? а??????????Token-Ring??1985??IBM????? ?????????????у?????????? ??????? ?????STP????????UTP??? ??4Mbww.PLC ??????????IEEE802.2IEEE802.5??????????????????к???CSMA/CD???? ???????UTP????2?72???а?????UTP????2?72???а???P??2?260????6.2????? ????а???????? ?????? ??????????????? ?????????????? ?? ???????? ?????????? ???????? ??????????A激激激激熟熟源烈激源烈熟源烈熟

6.2?????? ??????????TokenBus?????CSMA/CD??? ?????? ? ????к???а????? ?????? ?????????????????????к??а?????а ???????? ? ??а?ㄉ??????????????????а??? ??A?B?D?E?A?Cㄉ????????????????ˉ?ˉˉ激?ˉˉˉˉ?ˉ源?ˉ7.????從7.1FCSфDCS???????р?????θ???????????θ??????????????? ???? ???www.PLC???θ????????? ?ф???????ф??θ????????????????????ж??у???????? ?????????????情

7.2??????ф???????????????????????ж〃??? ??????????θ???????????????θ?????????????????????????????φ??????????????? ??????φ?儎??????????????????????? ????????????從θ??????????????θ????????????? ??θ???????????????θ????????????????????????θу? ??????????р????θ????????????????????????р?ж??θ?????у?????????θ???┗?????? ???ж???????? ????θ???ж〃“?”???θ???? ?┗????????ぁ??? ????“?”?θ?? ???????θ?亱??? ??θу???у????www.91HMI.com????? ??? ?????? ?? ??????????????シ?? θ?????????????????? ?????????φ???? ????θ???θ???????〃???ぁ??????у???????θ????????人?????ぁ????????????ф????????□??ф?????????????ж????? ?? ???ж?????θ?ぁ????????????人??????????ж???????–????ж???????????θ????ж?????????χ??????θж?????O??????????θ?????????????р??θ? ??儎????????????????????θ ??人??? ??-??θ?????θ???? ??????? ???????θ??? ?????? ?θ??? ???????????ж??????у?????????????δ3ε?????????????????θ???????χ?????????? ??θ???????????????????

?????????р ?????θ? ?? ????θ?ж? ???????????

??從θ???????а?????????? ?

???????????????亴

??????????????? ????????????????????????????????????????????φ????ж???θ????????????

?????у?????????┗??р??θ??????ぁ????????????ㄉ ㄉㄉ????? (??? ??? ??????????? ???????????????????亶????ъ?????????????????????□??????????????????????????www.PL??C?仁???????????? ???????儈?????? ????? ??????? ????????????????????? ????儈仁???? ?????????┑? ???????????????????????????? ?? ??????????????????????? ?????? ???????а???? ?? ? ?????????н???к????? ??????????? ?????↓??????н? 8?????????????????????θ????????? ж???ж??????????ustr trt????????Φ?????TPthernet??Φ????題thernet??T????? ?????κ??????

? ???????????????????????Ⅰ???κ? ???????????????????????P ???????☆?? PRO:net??????ж???? ?≌?????κ? ? ? ??ъ???????к????ъ? ??? ???? ????????dsA?ъ???n /Pъ??ntъ???ъ???FoundationFiedsE?FoundationFiedsE???????華東理工大學自現場總線控制第2LonWorks華東理工大學自本講內容提LonWorks神經 硬件結 主要性能特器附加功控制網絡組華東理工大學自LonWorks技術概是通用測控總線同時應用在SensorBus、DeviceBus、FieldBus等任何一層總線中。ISO的OSI七層協議上實 LON網中可有3~30000個節點 華東理工大學自過程過程控DeviceSensor邏輯控設備類Field控制類簡單設

中級設

復雜設 華東理工大學自SesorbusSesorbus(Bit-Devicebus(Byte-Fieldbus(Block-FieldbusProfibusProfibusIterbus華東理工大學自典型LonWorks節點基本組控制設I/O網通網通華東理工大學自LonTalk協智能智能控制器(節點傳感器執行器顯 操作接LON網采用分布式控制開放式控制網

華東理工大學自LonWorks技術概

華東理工大學自Echelon公司設計了

魄力:完整性(內置通協議與處理器提供最初的6個協議層,只有應用層編程和配置需Cypress、Motorola、Toshiba都生 ,價格很LonTalk協

華東理工大學自LonTalk協議遵循ISOOSI模型,并提供了OSI所定義的全部7層服務。它的特點:(1)支持雙絞線、電力線、無線、紅外線、同軸電纜和om2)可以運行在任何主處 (HostProcessor)3LonTalk協議使用網絡變量與其它節點通信。網絡變量4LonTalk協議支持總線型、星型、自由拓樸等多種拓樸 LonTalk尋址體系(分級:域、子網、節點OSI7

華東理工大學自提供的6

54

3 MAC子層1

息幀結構,數 P-堅持CSMA,避免,優先級,檢

華東理工大學自域域子網子網節點 ….節點

節點

子網節子網節點

節點三層:域、子網、節網絡地址可以有3層結

華東理工大學自域 )、子網(Subnet)和節點第1層結構是域。域是一個或多個信道上節點的邏輯集合,通信只能在配置為相同域的節點之間進行,因此一個域便形成一個虛擬網絡。第2層結構是子網。每一個域最多有255個子網。一個子網是一個域內節點的邏輯集合。一個子網最多可以包括127個節點。第3層結構是節點。子網內每一個節點被賦予一個在該子網內惟一的節點號。該節點號為7位,因此,一個域內最多可有:255×127=32385個節點LonWorks產

華東理工大學自收發每一個網絡

有一個收發器。發 個LonWorks設備與LonWorks絡之間提供了一個物理通訊接口。不同通信媒介之間用路由器相連。華東理工大學自收發器類 數據速 帶變壓器的雙絞線 帶變壓器的雙絞線 電力線 射頻型

LonWorks設備組

華東理工大學自路由

華東理工大學自求的傳輸介質和通 。(介質轉換和網絡速度。(交通控制)開發工

華東理工大學自基于Neuron的應用。具有高度可配置性,是開發和調試應用程序、安裝和配節點以及分析網

的集成工具。開華東理工大學自網絡接口、WEB服務獨立的PC機:PCLTA-20PCLonTalk適配器,是一個封裝在標準的PC機PCI適配卡上的網絡接口設備。通過它可以使用網絡工具,如LonMaker PCMCIAPC卡式的網絡接口Ehelon公司的SLTA-10系列LonTalk適配器可與一(4)i.LONTM1000IP服務器支持同Internet、

華東理工大學自LON收發 Http服務Http服務Web服務Echelon公司通過與Cisco Systems公司、公司和Sun Microsystems公司等作,開發出i.Lon100。它既是路由器,又是符合業標準的 網絡服務 i.Lon100s行IP數據包處理后,利用IP網絡傳通過iLon100可更方便地將LonWorks和Internet連接起來,使用戶能夠在Internet問應用領域也越來越廣。華東理工大學自提供LonWorks信道與IP信道的接,實 組網配置 網絡工

華東理工大學自置、診斷 以 LON網。LON節點的

安裝階段完成。這由在Neuron里的網絡管理服務的集修改錯誤節點或重構網絡。華東理工大學自 內部結構及管腳配 Neuron 了多個處理器,并有RAM、ROM、通訊和輸入輸出設備。在只 存了操作系統 LonTalk協議以及輸入輸出工作方式庫。這一芯片對于從LonWorks網絡 的應用程序和置數據來說是一個不可變 器 每一個Neuron 一個獨一無二的48位代碼,稱作Neuron ID。華東理工大學自2.1.1 內部結 Neuro 包括3個8位的CPU華東理工大學自CPU-1LonTal

CPU,主要處7層協議棧中第一和第二層。包括動通信子系統硬件以及執行MAC算法。CPU-1和CPU-2通過共享內存中網絡緩沖CPU-2: 網絡處理CPU,實現LonTal協議棧的3-6層。處理網絡變量、尋址、事絡管理。CPU-2用網絡緩沖區和CPU-1通CPU-2用應用緩沖區和CPU3通信。CPU-3 是應用CPU。它運行用華東理工大化系碼和應用代碼調用的操言是Neuro C1每個CPU有各自的寄存器設置,但它們可共數據、ALU的地址以 電路 2三個CPU的最小周期分別間隔一個系統周期,以便在每個最小周期,各個CPU可以訪 器和ALU各一次(3)系統對三個CPU采用了管道技術,在不三個CPU可并行工作,而不會造成耗時的中斷2.1.2腳配

華東理工大學自中的成員是中包括E2PROM、ROM 器,3150中無內部ROM,但 引

華東理工大學自 引

華東理工大學自 Neuron 比 華東理工大學自華東理工大學自引 華東理工大學自引 主要性能特

華東理工大學自高度集成三個8位CPU,輸入時鐘范圍 (3)11條可編程I/O引腳(有34種工作方式兩個16位的定時器/計數器、15個軟定時網絡通信端口工作 端、差分固件包括:LonTalk協議、I/O驅動程序、事件驅多任務調度程服務引腳:用 識別和診每個 有唯一的48位的內部ID號內置低壓保護以加強對片內E2PROM的保護通訊速率:610b/s器

華東理工大學自內部E2PROM網絡配置和地址信獨一無二的48位Neuron(3)3120其內部E2PROM也存由LonBuilderNodeBuilder開發工3150應用代碼可寫在片內E2PORM中或片擴展 器中,或兩者兼而有之。華東理工大學自

華東理工大學自 E2包含2K片內RAM RAM用 堆棧、應用和系統數2LonTalk協議的網絡和應用緩沖區即使

華東理工大學自所有3120xx都包括10K字節的ROM。ROM用來Neuron芯LonTalk協議代事件驅動和任務調應用函數華東理工大學自External3150片內不包括任何ROM,允許外擴的外 器。外 器用 應用程序和數據(最多 留空間 EEPROM或閃存組成,以256字節遞增 像圖如圖 內 器配

華東理工大學自華東理工大學自3150外 驅動的華東理工大學自與外 器之間傳輸時,時鐘使能始終低。三 中的 個都可以在指令 期互相偏離一個系統周期只有一個CPU可以使 器總線 華東理工大學自Neuron3150EPROM連附加功

華東理工大學自服務引腳(Service服務引腳用于配、安裝和 LonWorks節點。服務引腳既可作輸入也可作輸出。作輸出時,服務引腳通過一個低電 一外的D。當節點沒有有效的應用代碼或 已壞時,LED保持為亮。當節點還沒有被配置網絡地址信息時,LED以0.5Hz的速率閃爍作輸入,當給服務引腳輸入低電平時,將引起Neuron 在網上發送一個包含48位Neuron的絡管理消息。服務引腳電

華東理工大學自華東理工大學自服務管腳電路3亮未配置(有應用264睡眠/喚醒電

華東理工大學自 的定時器/計數器都被關閉,但仍然保持著所有的狀 輸入跳變發生在下列任何 恢服務引腳(不 的 I/O引腳( 的 通信端口( 的單端模 差分模 CP0或模 華東理工大學自 當檢測到喚醒事件,Neuron將允內部后恢復操作??撮T狗定時

華東理工大學自 看門狗定時器掛復

華東理工大學自復位引腳是漏極開路、雙向且低有效的外部信號驅動產 電平輸內部控引起復位引腳復位的內部控制有以下幾軟看門狗定時器時間溢低電壓檢華東理工大學自復位引腳在下Vdd加Vdd電源抖程序恢復(址或數據出錯造成Vdd掉電(確保正常關機時鐘系

華東理工大學自 的輸入時鐘頻率范圍可以從 到 頻率是10MHz、MHz、2.5MHz、1.25MHz和625kHz 確性在1.5%通信。華東理工大學自Neuron以2的冪實現輸入時鐘的分頻,從而獲得的系統時鐘。系統時CPU看門狗定

服務編程模

華東理工大學自定時對于Neuro 應用程序來說,可以時器。毫秒定時器提供一個計時范圍為1到64000(0.00

4秒)毫秒秒定時器提供一個計時范圍為1到65535秒定時器。對于計時范圍為64秒或少于64秒的精,最多可以定義15個定時器對象。時器和Neuron 上兩個硬件定時器/計數器無關,而且是獨立于Neuron 網絡變

華東理工大學自 上的網絡變量連接在一起。LonBuilder開發工作臺、以及LonMangerAPI接口都包括這樣的連接器。連絡管理信息來實現的。網絡變量通信示意

華東理工大學自節點節點節點networkoutputintyewei1; networkinputintyewei2; 顯式報

華東理工大學自節可通過網絡變量或通過顯式報文其它節對多數應用說網絡變量以實現最的最簡單的應,而且所占用的代碼空間也是最少的。而對某些應用來說,有超過31節數據需要發送, 合用絡量模,需要使用請求響應服務,可以使用顯式報文。應用程序可以構造消息 來傳遞消息到其他節點或組節點,每個消息可以包含最多達228數據。消息也可以通過子網節點、組、廣播、Neuron ID地址被顯示地傳遞到其它節點。/華東理工大學自兩種節點類chip- 有的應用和通信處理,其用NeruonC編程。host- 處理器,而另一個處理 Lonworks網通訊。Lonworks實現LonTalk協議的1-5層,將6和7層應用處理交由主處理器處理。華東理工大學自I/O

收發

收發

基于

的節 基于主機(單片機、PC機)的節華東理工大學自華東理工大學自 數據結 (1)系統映包括LonTalk協議、euron 和任務調度。3120中,這部分軟件在片內10K 的ROM中。315 中,這部分軟在外部ROM或閃存中。對3150,這部分軟件作為LonBuilder和NodeBuilder 被提供。使用NodeBuilder軟件,用戶可以產生包含系統映像的In 十六進制或MotorolaSrecord文件以便于EPROM或閃存編程(2)應用映

華東理工大學自包括由NeuronC編譯應用程序產生的目標代碼以及應用編程ID字符可選擇的自識別和自編數ww網絡緩沖區的大小和數 華東理工大學自在315 中,應用映像通常是編程寫 到外部ROM或通過網絡 到外部E2PROM或 閃存中。在3120 內E2PROM中。LonBuilder和NodeBuilde支持創建應用映應用映像上的應用的。

的大小是獨立于網絡變量。包括Lonworks 絡變量和消 的連接信息、在安裝 設置的LonTalk協議參數、應用程序的置變量。當安裝節點時通常由網絡管理 具負責將網絡映 到華東理工大學自網絡映像數據域表,節點所屬的每個域都占一條條 3控制網絡組

Backbone

GEFanuc LonWorks光纖T

LonWorks,信道電源線

wwwSASN

T T本A A系

LonWorks,雙絞線, SCSA IAICSCS

N:

TModemLonWorks,電力線, 控制網絡組成部

華東理工大學自網絡監視用PC通信節點(俗稱網絡適配器現場智能節路由網華東理工大學自本講結現場總線控制NeuronC語言與I/O對信息學院自動化系凌志內容NeuronCNeuronC編及技節點間通網絡變顯示報輸入輸出對1NeuronC 的應用程序是用NeuronC編寫NeuronC是建立在ANSIC的基礎上的,與之相比有如 (1)一種新的語句類型when,引入事件并定義任務事件的執行順序。新增加了37種數據類型,34種輸入/輸出對象,2個定時器/計數器對象,大大簡化了設備控制器的用法。網絡變量的內部消息傳送機制和其他消息處理機制。發生在網絡當中或指定設備上的事件所自己是被事件驅動對ANSIC擴展包一個內部多任務調度程序,它允許程序員以自然的方式描述事件驅動的任務,同時控制這些任務的優先級的執行。將I/O對象直接映射到處理器的I/O能力 網絡變量對象定義:提供一簡單的實現節點之間數據共享when語句顯式消息傳遞 explicit messag ):用于直接LonTalk協議的底層進 函數庫:當調用時,可以執行事件檢查、管理輸入輸出、上發送或接收消息以及控制n 的各種功能。(8)Neuron<stdlib.h

C中有三個ANSI包含文件stddefhlimitshNeuronC持的變量的類整型(整型常數或整型變量int、shortint、longint、unsingedintsigned(可省略 unsignedchar(8signedchar(8位)typedefenum{FALSE、TRUE其NeuronC量定NeuronC和ANSIC支持的變量定義如簡單的數據類 inta,b,c;char數據類 typedefunsignedlong枚 enum指 char函 intf(inta,int數 int結構和共用 {charname[10];intage;charaddr[10];(2)NeuronC中附加定義的對定時器mtimer網絡變量:network tint消 :msg_tag編譯指NEURON C允許通過pragma編譯指令進行編譯器擴充。pragma可用來設置一個Neuro 的系統資源以及節點參數,諸如 數等。也可用于對特的Neuro 參數進行控制,這些指令可在源件的任何位置出例:#pragm enable_io_pull_up可使IO4---IO7的上拉NeuronC程及技調度程Neuron 的務調度是由事件驅動:當一個給定的條件判斷為“真”,的代碼被執行(稱為任 執行)。調度程序允,該任務作為特定事件的結果被運輸入管腳的改、接收一個網絡變量的或定器溢出等。也可以指定某些任務是具優級任,。when語事件由when語句來定義,whe例:when(timer_expires(led_timer))//當定時器溢出時執行下列務{io_out(io_led,OFF)}在任務執行后,時間溢出事件被清除。當led_timer再次溢出,when子句判斷為真,任務又將執多個when子句可與一個任務發生關when(resetwhen(io_change(io_switch))when(!timer_exw.PLC s)when(x =3{}when子句不能嵌如下為錯when(io_changes(io_switch){when(x =3…..}(2)when子句語[priority]{

[prompt_safe when(eventtas}priority(優先級):可選擇safe:可選項,如使用即便應用程序處于占先模式,仍然允許調度程序執行相關的n任務。event:可是預定的事件也可是有NeuronC表達式。task:是NeuronC的復合語句,任務同void也即它不能返回一(3)when語句中的事件類分為兩種:預定義事件和用戶預定義事件:使用編譯器內部固有的關鍵字,包括輸入引腳狀態變化、網絡變量修改、定時器溢出以及消息的接收等。用戶定義事件:可以是任何有效的NeuronC表達式例when(msg_arrives確when(online//when(msg_arrive &&flag=

///(4)when語句的調調度程序對一組when子句的判斷過程是一個循環往復的過程,每一個when語句都由調度程序檢測,如果為真,則與其相關聯的任務就被執行。如果n語句為假(FALS),調度程序將繼續檢查后面的when語句,在檢查完最后一個when(A)when(B){B{}A}when(C)when(D){C{when(A)when(B){B{}A}when(C)when(D){C{}D}

句后(5)優先級when子如when子句選用prioit關鍵字,相比無優先級的子句,調度程序對具有優先級的n子句的判斷次數要頻繁的多。優先級n語句在每次調度程序運行時以指定的順序被檢查。如果任何優先級n語句被檢測為真,則與它相對應的任務就被執行,然后調度程序又重新回到優先級n語句隊列頭,從頭開始檢測優先級n使用優先級n語句必須仔細考慮。因為優先級when語句太多的話,將使無優先級的when語句根本沒機會執行。如果一個優先級n語句在大部分時間里都為真,則它將獨占處理器時間。(6)預定義事件關鍵flush_complete 、offline 、online wink、io_changes、io_in_ready、io_out_ready、reset、timer_expires、io_update_occur 、msg_arrive msg_completes、nv_update_failsw 預定義事件還可以作為子表達式放置在if、while、for語句的控制表達式中,這種方法稱為直接事件處理。例:mtime when(event{……if(timer_expires(t){io_out(io_led,OFF);定時毫秒定時器提供一個計時范圍為1~64000秒定時器提供一個1~65535秒的定時 (1)定時器的定mtime [repeating timer-name[initial-value器

毫秒定stimervalue]秒定時

[repeating timer-name[=initialrepeating:為可選項,如果定時器溢出,定時器將自動開始重新計時。使用該選項,即使應用不能立即響應該終止事件,精確的時間間隔也能夠被保留。timername為定時器指定init-value: 為可選項,指定當加電或者復位時賦給定時器的值。如果不提供該初始值,定時器的值被置為0。例stime led_timer//定義秒定時器led_timerwhenreset{led_timer=5}when( =50{led_timer0//關閉秒定時}時間溢出事語法timer_expires[(定時器名定時器名:是可選項,由它來指定所要檢查的具體的定時器。如沒有該選項,該事件是一個未加限定的timer_expires事件。它與其它預定義事件不同的是,其它的某個掛起事件只為真一次,而對未加限定的tw pires事件,只要任何一個定時器已經終止,未加限定的timer_expires將一直保持為真。該事件只有當檢測到特定的定時器終止事件時才能被清除stime led_timerwhen(timer_expires(led_timer) io_out(io_led,OFF);如果程序中有多個定時器,對每個具體的定時器都要作檢查,以便這個終止事件被清除。例如:mtimermtimermtimerwhen(

x;y;z;timer_expiresw.PLC)world.cwhen(timer_expires(y) when(timer_expires(z) 另外也可采用when(timer_expires{if(timer_expires(x)els if(timer_expires(y)els…..}

if(timer_expires(z)輸入/輸 為實現I/O,可使用內嵌的I/O函數:io_out() io_in()、io_select()、io_select_dirction()、io_change_init()、io_set_clock()等。(1)I/O對象的定說明一個I/O對象在哪個或哪幾個管腳上將實現什么類型的I/Opin type [option] io-object-nam pin IO0~IO10中的一個,同一個引腳可以出現在多 O對象定義typeIO對象類型:輸入或輸option是可選的IO參數,不同IO對象有不同的選(2)定義I/O對象的指導原最多定義16個I/ONeurowire、I2C、、磁跡1以及串行I/O對象是互斥的。在一個程序中可以說明一個或多個該組中的某一種定時器/I/O對象定時器/計數器1可以有多到4(多路復用輸入對象)并行和muxbus I/O對象要求使用所有的I/O管腳,任何一個這種類型的I/O對象被說明后,就不能再說明其它I/O對象類型。I/O對象 使可能同一引腳要定義為多種I/O對象IO_

input

nibble io_all_pointsIO_4IO_5IO_6IO_

input bitinput bitinput bitinput bit

io_point_2;io_point_3;io_point_4允許一個程序在同一個操作中讀相鄰的4個引腳每個引腳(比特I/O)(4I/O函數及事輸入對象 可以采用兩種方法顯式的調用io_in()函數 調用io_out()函內嵌的I/O函io_in(return-value=io_in(io-object-//從I/O對 數io_ou 備時,使

當信號要發送到某個io_out (io-object-name,output-value[,agrs])//向一個I/O對象寫與I/O有關的事代替顯式調用io_in(io_changes()

)函數的方www.PLCwww.PLCworld.c僅用于輸入對象,在檢測時,io_update_occurs和io_changes件都隱含的執行io_in()函數,該函input_valu io_changes事語法:io_changes(io-object-name)[by|to當從I/O對象讀到的值改變時,該事件判斷為真。值的改①改變為某指定的值(to ②至少改變一指定的量③任意改變

對值參考值是上次事件判斷為真時的值,對的io_chang事件,如果當前值與值不同時就意味著發生了一個狀態的改變.對于定時器計數器輸入設備有一個新的值并且該值與以前的值不同時,io_chang事件才發生。例IO_ input bit push_buttonwhen(io_changes(push_button{}

to 0)IO_ input pulsecoun total_tickswhen(io_changes(total_ticks{}

by 100)對于定時器/計數器對象,io_changes事件雙斜率輸入:轉換完 件發定期及周期輸入:如果測量時間與上次測量時間相比已發生改變 件發生。脈沖計數輸入:如果脈沖數的值與上次計數相比io_update_occurs事當輸入對象(io-object-name)的值發生事件只能用在某些器/計數器的輸入對象中。對事件的定時依賴于輸入對象例雙率輸入:轉換完成且值發生變化時該事件發定及周期輸入:事件 定時度量結束時脈沖計數輸入:每0.839秒事件發生一次,即當一新的脈沖計數值有效input_value變longint類型,內嵌變量,可象任何其他的C變量一when(io_changes(io_switch_in) nv_switch_state(input_valueST_ON:ST_OF 的值設置網絡

SWITCH_ON)例中可以根據input_valunv_switch_stateinput_valueio_changes和io_update_occurs事件發生后才有兩種方法可以幫助你確定輸入值是否節點間通 實現節點間通信、數據由LonTalk協議實類型相同的網絡變量才能建立I/O(6)不用考慮消息的打包、發送及接收,簡化編程,縮短開發周期。網絡變量的說network input identifier network input

outpu typeinitial-value]outpu type [array-bound][=initializer-說input、output:輸出/輸入網絡變identifier:用戶定義的網絡變量初值:(initial-value)指定Type:(1)[signed]long (2)unsignedlong(3)[signed][short]int(4)unsigned[short]signed

[unsinged]標準網絡變量以上類型構成的結構體、數組(最多62個元素SNVT:是一組與數據的單位(如攝氏、伏、米等)相關聯的預定義網絡變量類型,同時SNVT絡變量值的范例networkinputSNVT_temptemp_set_point;networkoutput primary_heater;network networkoutputbooleanbiw fo(priority)fire_aalarm;networkoutputbooleanbind_info 網絡變量的連接是獨立于節點上的Neuron 用的。網絡變量的連接由網絡管理工具中稱為連接器(Binder)的部分來建立。Binder是LonBuilder網絡管 、LonMaker安裝具或其它網絡管理工具的一部連接器首先找共享共同網絡變量的所有節點。然去is_bound()函數用來確定網絡變量是否連接到其它任何的網絡變量。有4個和網絡變量相關的預定義nv_update_completes [(network-var)]nv_update_fails [(network-var)]nv_update_occurs[(network- 只用于輸入網絡變nv_update_succeeds[(network-其它三個事件,當輸出網絡變量被更新時,用于輸出網絡變量,當輸入網絡變量被輪循時,應用于輸入網絡變量。network-var :可用網絡變量名、網絡變量數組名或網絡例如 network_var[index],如事件被一個數組名限定,事件對每個數組元素發生一次 nv_update_occur [(network-var)事network-var:如果省略,事件對任何網絡變量更新都為真。當輸入網絡變量收到一個新值,nv_update_occurs事件為真。例networkinputSNVT_tw {} pletes[(network-var)]事network-var:可是網絡變量名、網絡變量數組名或網絡變量數組元素,也可沒有。用于被輪循的輸入網絡變 完無論成功還是失敗,只要完成該事件都例:network output int humidity;humidity=32when(nv_update_completes(humidity){}③nv_update_failsnv_update_succeednv_update_fails(network-var當一個網絡變量更新或輪循失nv_update_fails事件為真。如果沒有相應的網絡變量,那么該節www.P點任何網絡變量的更新 敗該事件都檢測為真。如果多個網絡變量被指定,則每一個網絡變量更新或輪循失敗都使該nv_update_succeeds(network-var同樣當輸出網絡變量更新已被成功地發送或來自所有寫出節點的輪循都已被接收到,nv_update_succeeds事件為真三個節點網絡示意開關一個輸出網絡變量控制兩個輸入網開關節#pragmaenable_io_pullups;#include<snvt_lev.h>networkoutputSNVT_lev_discnv_switch_state=ST_OFF;#defineBUTTON_DOWN1#defineBUTTON_UPIO_4inputbit//I/OWhen(io_changes(ioButton)toBUTTON_DOWN){}電燈節networkinputSNVT_lev_discnv_lamp_state=ST_OFF;#defineLED_ON1#defineLED_OFFoutputbitioLED=LEDw }華東理系文3.2.1顯式報文與網絡變量的比顯式報文有一個可變大小的數據域,一個給定的網絡變量數據域的大小是一個常數。顯式報文提供了請求/響應機制,使得在一個節點上的應用可以引起另一個節點的應用來 它.顯式報文使用的E2PROM間比網絡變量顯式報文是從一個節點向另一個節點傳送信息的更復雜的方法。程序員必須顯示地構造、發送和接收顯示報文。而報文的屬性例如服務類型、認證和優先級是在編譯時定義的,在節點安裝后是不能通過網絡管理工具配置的。3.2.2顯式報操作步Neuro 功(1)構造一個報msg_out 發送一個報msg_send 函msg_cancel 函 接收一個報 msg_arrive 事msg_receivemsg_i 對3.2.3構造一個報報文對象名字發送:使用msg_send(函數 (1)msg_out象定booleanmsg_tag //報 該域是必須int

消息代 字報文碼,該域必須intdata[MAXDATA];//報文包含的數據(缺省沒有//該域是可議MAXDATA<228booleanauthenticated;service_typeservice;//服務類型(缺省為確認服務)msg_out_addrdest_addr;typedefenum{ACKD=0,UNACKD_RPT=1,service:為下列服務ACKD(缺省值 確認服 非確認重發(報文發送多次 請求送,則接收節點返回一個響應給發送節點,發送節點處理這個響應。dst_addr:在msg_out對象中是一個可選域,如果用顯示地址發送報文,則應用程序給該域賦值。(2)發送報void msg_send(void); //其用msg_out對象發例如:msg_ta motor define MOTOR_O define ON_FUL 100when (io_changes(switch1)t ON // 給電動機發送一個msg_out.ta motormsg_out.cod MOTOR_ON碼是msg_out.data[0] msg_send();

//消息}void該函數取消為msg_out對象構造的報文并釋放分配給它的緩沖區,允許構造另外的報文,它無參數、無返回值。如果構造了報文還沒有發送出在任務退出前報文被自動取消。這個函數用來取消優先級和非優先級報(3)接收一個報報文。msg_receive函數也可用來接收一個消息。收到的例 //被請求脫}{}struct{

code;文len;//報文數據的

//報文//如認證通過

//接收消息是一個重發的請求消息rcvtx;//接收事ID,在節點的事務數據庫}msg_arrivesmsg_arrives[(message-code)]mssag-code:是一個可選的整數報文代碼。如果省略這個參數,收到任何報文,事件都為真。當報文到達時,mg_arriv事件為真。這個 可以由報文的發送者指定一個限定的報文碼。這時只有當包含指定碼的報文到達時,事件才為真。當既使用非限定的msg_arrives事件又使用限定的msg_arrives事件時,則必須指定#pragmascheduler_reset編譯指令,以便在所有的限定事件when語句之后處理非限定事件when語句。#pragmawhen io_out(sprinkler,ON); when(msg_arrives(2)) io_out(sprinkler, when(msg_arrives)//處理意 {//什么也不做,只是仍掉}意:使用msg_arrives事件接收消息的程序,應該考慮到接收意料之外的消息。例如某個節點的服務引腳向所有節點發送,但只有網絡管理工具對該消息有處理該消息。否則未處理的消息停留在隊列前面,造成阻塞。booleanmsg_receive(voidmsg_receive函數接收一個消息到msg_in對象,如果收到一該函數不能用在一個when例: }開關、燈節

開關程#defineLAMP_ON#defineLAMP_OFF#defineOFF#defineONIO_4inputbitio_switch_in;msg_tagTAG_OUT;// {}{}燈程#defineLAMP_ON#defineLAMP_OFF#defineOFF#define IO_0outputbitio_lamp_control; {{caseLAMP_ON:io_out(io_lamp_control,ON);caseLAMP_OFF:io_out(io_lamp_control,OFF);

}}4.Neuron 應用I/O對 4.1 I/O對象類 I/O對象簡單的講就是一個定義的輸入或輸出波形,

成是存放在ROM 中供用戶程序 的已編寫好的固件例 程,如同Windows編程中的各種控件,可直接使用。用戶可通過io_out ) io_in( )系統調用來 并在程序執行期間完成輸入/輸出操作。應用Neuron 通過11只引腳(IO0---IO10) 與應用指定的外部硬件相連,稱這11只引腳為應用這些引腳可以以最少的 接電路實現多種靈活的輸入輸出功能。其中IO4-IO7可通過編程使用芯片內部的上拉電阻、IO0-IO3有高電流吸收能力、IO0—IO7具有低電平檢測鎖存器。IO0-IO10有TTL電平輸入??梢远x一個或多個引腳作為I/O對象。Neuro 共有34種不同的I/O對,分為以下四(1)直接I/O對象基于I/O管腳的邏輯電并行雙向I/O對并行IO對象用于高速雙向輸入、輸出數據,當定義并行I/O對象時,必須定義用全部的I/O對象引腳。串行I/O對用來實現在一個管腳上串行的數據傳定時器/計數I/OI/O對象介直接I/O對(1)比特I/O對象這種I/O對象類型用于讀或控制單個管腳的邏輯狀態,IO0—IO10都可分別配置成單個的比特輸入或輸出端0相當于低電平而1相當于高電平。輸入信號電平是TTL電平,比特輸入可從外接的邏輯電路例如觸點表決器以及類似的電路中 與TTL電平兼容的邏輯信 號。比特輸出信號電平是CMOS 電平,可驅動外接的與CMOS電平兼容的邏輯電路。如開關晶體管、燈等也可驅動較高電流的外部設備如步進電機等。程序可動態的改變端口的輸入、輸出方向。IO0---IO3 較高的高電流(20mA)吸收能力,使得它們能直接驅動多個I/O設備。IO4—IO7具有可編程上拉電阻。pininputbitpinoutputbitio_object_name(=initial_output_level);IO_1inputbitunsignedint{switch_on_off=input_value;//input_value是內部變}IO_2outputbitio_led;unsignedintled_on_off;{}電平檢測輸入對象IO0—IO7可分別配置為電平檢測輸入端口,用于檢測某一輸入端輸入的邏輯為“0”的電平。它能10Mhz的輸入時鐘每200入狀態在硬件上被鎖存任何0電平輸入。該事件由值1代表,當時清為零。只要輸入管腳電平停留在邏輯0,每個io_in()調用將返回值1.用于俘獲短持續時間的對象定pin[input]leveldete

溫馨提示

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

評論

0/150

提交評論