ISD:信息交換接口模塊
Index
1- 介紹
ISD模塊屬于Contatto系統范疇,它的意思是Data Exchange Interface,即信息交換模塊,它的作用使多個MCP之間能夠進行信息交換,MCP和ISD通過RS485連接成一個網絡。ISD的編程也是通過MCPtools軟件寫簡單的程序等式來實現的。
MCP之間通過ISD的信息交換是使用虛擬點,ISD有如下的功能:
1. 它能夠在內部RAM區創建所有連接的MCP(最多31個)的虛擬點鏡像。
2. 按照順序執行程序等式,如果某個程序等式的結果和先前的結果不一樣,則其就在緩存中改變虛擬點,就會向對應得MCP發送新的狀態。
3. 所有的信息是通過緩存發送到MCP的
ISD有2個獨立的串口:RS485用于連接MCP;另一個是RS232口,用于連接PC機(用于編程或監控)。
由于MCP控制器是通過RS485口相連的,所以必須使用MCP plus,因為它具有RS485口。下文所說的MCP就是指MCP plus。每個MCP在RS485網絡中具有不同的地址。
每個MCP控制器控制自己的總線,ISD接口能夠在MCP之間傳遞虛擬點的狀態。舉例,能夠控制一盞燈通過使用MCP2網絡中的輸出,使用MCP1網絡中的輸入。
最多可以連31個MCP控制器在同一個網絡當中,ISD接口讀取各個MCP模塊的虛擬點的時間將隨著MCP模塊數量的增加而有所增加,這在RS485網絡中是很正常的。具體的延遲時間和很多因素有關,難以計算,大致的時間計算公式如下:
Tr = (連接的MCP的數量) x 0.5 seconds
此公式的在ISD和MCP之間通信速率為19200 Baud時有效,并且監視器沒有通過RS232連接在總線上(查看上面的連接圖)。事實上,如果監視器掛接在總線上,則反應時間將會增大一點。
1.1 一般說明
Contatto家族里的ISD通信模塊,在其RAM中,有1000個虛擬點,另加每個連接的MCP的1000個虛擬點的鏡像。如上所說,也就是ISD只能交換MCP之間的虛擬點的信息。為了區分MCP之間和ISD的虛擬點,我們使用如下標識:
Vm.n
這里m就是MCP的地址,n是虛擬點。如果m=0,則表示ISD的虛擬點。
u 虛擬點V0.1到V0.1000是ISD本身的虛擬點。
u 虛擬點V1.1到V1.1000時MCP地址為1的虛擬點的鏡像。
u 虛擬點V2.1到V2.1000時MCP地址為2的虛擬點的鏡像。
u ……
u 虛擬點Vn.1到Vn.1000時MCP地址為n的虛擬點的鏡像(n小于32)。
ISD預留一些點作特殊功用。
u V0.1000:只允許讀;當ISD探測到一個或多個MCP出錯的時候,此虛擬點激活,且其狀態可在MCP的LED燈 MCP.F上顯示。
u V0.999:可讀/寫點; 這個點狀態控制著ISD內置的繼電器,更確切的說,當V0.999為0的時候,繼電器活動;當V0.999為1的時候,繼電器不活動。
u V0.998:只讀點;在模塊上電程序初始化或在重新編程后,該點被激活。
u V0.997:只讀點;該點的狀態每0.5秒改變一次。
u V0.996:保留
u V0.995:保留
u V0.994:保留
u V0.993:保留
2- 等式:類型和標識符
只有邏輯等式才能下載到ISD模塊里。通過虛擬點(作為輸入)的邏輯等式控制虛擬點(作為輸出)的狀態。一個等式中包含的輸入點量是沒有限制的。一般ISD里的邏輯等式表示如下:
Vm.n = f ( Vj.k )
這里Vm.n是MCP地址為m的虛擬點n,f ( Vj.k )是輸入點的聯合等式。
用作輸出的虛擬點的功能實現,可以通過使用邏輯的 與(符號&) 和 或(符號|)來聯合一個或多個輸入虛擬點,也可以在輸入點前加 非 (符號!)。與的操作優先級高于或的操作優先級,但要注意的是優先級可以通過使用括號()來改變。
為避免混淆,一般遵循以下規則:
u 在MCP中作為輸入使用的虛擬點,在ISD中作為輸出使用。
u 在MCP中作為輸出使用的虛擬點,在ISD中作為輸入使用。
例子1:
此配置具有兩個MCP控制器,MCP1和MCP2,MCP1的一個輸出O1.1由MCP2的I1.1來控制,兩個MCP通過ISD連在RS485網絡上。
MCP2中的程序等式為:
ADDRESS=2 //給MCP分配地址為2
V1= I1.1 // V1由I1.1來控制
ISD中的程序等式為:
V1.1=V2.1 //MCP1中的虛擬點1由MCP2中的虛擬點1來控制
MCP1中的程序等式為:
ADDRESS=1 //給MCP分配地址為1
O1.1= V1 //O1.1的狀態由V1 來控制,即通過ISD,由MCP2中的I1.1來控制。
其實現過程,可參見下圖:
例子2:
此配置具有兩個MCP控制器,MCP1和MCP2,MCP1的一個輸出O1.1由MCP2的I1.1通過返回式按鈕來觸發控制,兩個MCP通過ISD連在RS485網絡上。
這個例子和例子1有點相似,因此有人想只是在MCP1中修改等式就可以,把O1.1 = V1 改為O1.1 = TV1;這是正確的,但是由于RS485網絡的反應時間可能相當長,有可能丟失短暫的觸發信號。所以一般最好的解決方法是T加在實際輸入點前,即I1.1前,而不是V1前。
MCP2中的程序等式為:
ADDRESS=2 //給MCP分配地址為2
V1= T I1.1 // V1由I1.1來觸發控制
ISD中的程序等式為:
V1.1=V2.1 //MCP1中的虛擬點1由MCP2中的虛擬點1來控制
MCP1中的程序等式為:
ADDRESS=1 //給MCP分配地址為1
O1.1= V1 //O1.1的狀態由V1 來控制,即通過ISD,由MCP2中的I1.1來控制。
例子3:
此配置具有兩個MCP控制器,MCP1和MCP2,MCP1的一個輸出O1.1在由MCP2的I1.1閉合的情況下持續閃爍。兩個MCP通過ISD連在RS485網絡上。最好使用MCP的V997來控制閃爍輸出,程序等式如下:
MCP2中的程序等式為:
ADDRESS=2 //給MCP分配地址為2
V1= I1.1 // V1由I1.1來控制
ISD中的程序等式為:
V1.1=V2.1 //MCP1中的虛擬點1由MCP2中的虛擬點1來控制
MCP1中的程序等式為:
ADDRESS=1 //給MCP分配地址為1
O1.1= V1&V997 //O1.1的狀態當V1激活的時候閃爍。
例子4:
此配置具有兩個MCP控制器,MCP1和MCP2,以及一個ISD接口模塊。ISD的內置繼電器在如下異常的情況下將會失效:
u 至少MCP1網絡中1個模塊總線錯誤
u MCP1總線短路
u 至少MCP2網絡中1個模塊總線錯誤
u MCP2總線短路
u ISD與至少1個MCP模塊通信錯誤
ISD中的程序等式為:
V0.999=V0.1000|V1.1000|V2.1000|V1.999|V2.999
事實上:
u V0.999是ISD控制內置繼電器的虛擬點
u V0.1000在RS485網絡中與至少1個MCP通信錯誤的情況下激活
u V1.1000和V2.1000是對應得MCP網絡中,當有模塊出現錯誤的時候,該點被激活
u V1.999和V2.999是對應得MCP網絡中,當有總總線出現錯誤的時候,該點被激活
任一種警報的虛擬點的激活都會激活V0.999,也就是會使ISD內部的繼電器失效,警報發生器(如汽笛等)必須連接在常閉的繼電器上。即使是在電源故障的情況下都會激活警報器。
例子5:
此配置具有三個MCP控制器,MCP1,MCP2和MCP3,以及一個ISD接口模塊。MCP3的輸出O7.3在MCP1的輸入I38.4閉合,并且MCP2輸入I46.3打開的時候激活。此例的程序等式如下:
MCP1中的程序等式為:
ADDRESS=1 //給MCP分配地址為1
V51= I38.4 // V51由I38.4來控制
MCP2中的程序等式為:
ADDRESS=2 //給MCP分配地址為2
V87= I46.3 //V87的狀態由I46.3
ISD中的程序等式為:
V3.1=V1.51 & !V2.87 //這里輸入部分的虛擬點等價于I38.4和I46.3
MCP3中的程序等式:
ADDRESS = 3 //給MCP分配地址為3
O7.3 = V1 //O7.1由V1來控制
3- 等式書寫
等式書寫是ISD編程的第一步。等式必須依照前面章節介紹的語法結構來書寫。
用MCPTOOLS軟件來編寫等式;此軟件與MCP模塊一起由DUEMMEGI提供。
MCPTOOLS工作在個人計算機WINDOWS操作環境下,且允許程序的簡單書寫和系統配置。
MCPTOOLS一般包括:
l 編寫程序的文本編輯器
l 可將ASCII文件轉換成二進制文件的編譯器。
l 可校驗程序的仿真器。
l 可將程序從PC傳輸到ISD
l 配置的輸入輸出模塊的狀態顯示圖。
包含等式的文件為ASCII格式,文件擴展名必須為.EQU;例如:
filename.EQU
這里filename為程序文件的名稱,可以為WINDOWS下任何允許的名字。擴展名.EQU是必須的,因為MCP程序的一系列步驟(編譯和傳輸)要求源程序必須為此擴展名。
ISD模塊程序包含3個連續步驟:
1.filename.EQU文件的建立(或編輯)
2.filename.EQU文件的編譯,這是將ASCII文件轉化為適合ISD存儲器格式的filename.BIN文件。
3.將filename.BIN文件下載到ISD存儲器。
假如在步驟2發現語法錯誤,則錯誤的語法,連同錯誤類型的信息和錯誤發生的行數,將被編譯器說明。
3.1 等式書寫規范
每個等式都必須按照相應的語法來書寫。
以下規則必須遵守:
1.空格和TAB字符沒有意義,將被編譯器忽略,但是為了程序的可讀性,等式項間的一些空格的使用被推薦。
2.使用符號“”可以使等式分散為多行。
3.等式在一行結尾處結束(假如沒有“”符號說明)
4.“//”符號(雙斜線)表明在本行結束前,接下去的字為注釋,且他們將被編譯器忽略。注釋可增強程序的可讀性。強烈推薦使用注釋來描述程序中的等式。
5.在等式書寫中大小寫字母都可以使用。
編寫和編譯程序不需要將ISD模塊連接到PC上。
3.2 等式編譯
編譯為ISD程序處理的第二步。包含等式的文件(.EQU擴展名)必須經由MCPTOOLS專門的菜單項編譯。
編譯器處理編寫的等式,檢查語法和前后一致性,警告任何存在的錯誤,且將數據存儲在一個名字相同,擴展名為.BIN而不是.EQU的二進制文件。二進制文件為不可印刷格式,但它可以傳送到ISD儲存器。
在編譯過程中,假如錯誤發生,這些錯誤將顯示在PC上,且程序繼續檢查所有的等式但不產生二進制文件。
編譯器同樣也報告警告:這意味著沒有錯誤發生,但在下載到ISD存儲器前有一些地方需要核實;即使有警告信息,也會建立二進制文件。
3.3 將程序下載到ISD存儲器
ISD程序處理的最后一步為將二進制文件傳送到ISD的閃存中,這個二進制文件包含系統配置和等式代碼。
下載由MCPTOOLS固有的菜單項實現,通過PC的RS232口連接到ISD的串口。
程序的下載要求ISD模塊存在且通過合適的線纜連接到PC。
注意:ISD出廠波特率為19200;假如需要一個較低速的,可以設置內部跳線或ISD模塊的微型開關選擇器。
4 配置
4.1 連接
ISD模塊提供一個連接到系統總線的5孔可移動式終端接口和一個內部連接到繼電器用作系統錯誤(模塊錯誤,總線錯誤等等)信號的3孔可移動式終端接口。這個繼電器通常為激活的,當錯誤發生時,繼電器無效;這樣即使在ISD模塊電源錯誤時,也會發生系統異常警報。繼電器的復位是自動的,因為當異常消失時,繼電器將恢復到它的正常狀態(激活)。
由于剛剛描述的運行模式,可選錯誤指示器(閃光燈,警報器或其他)得連接到繼電器的常閉觸點;觸點功耗為5A @ 250Vac。
4.3波特率選擇
出廠的默認設置時19200,如果需要更改,可以獲得如下的波特率:
u 19200 Baud
u 9600 Baud
u 4800 Baud
u 2400 Baud
掀開模塊的表面板,通過跳線來選擇需要的波特率。
注意:RS232口和RS485口的波特率是一樣的。