西門子AS-I通信編程方式有哪些
發(fā)布于2022-11-02 16:47
30
2
標簽:西門子
1.調(diào)用ASIX_CTRL子程序
將圖12-13左邊窗口的文件夾“\程序塊\向?qū)А敝械淖映绦颉癆SIx_CTRL”拖放到OB1中(見圖12-14),其中的x是AS-i模塊所在的槽位號。SM0.0的常開觸點一直接通,每次掃描時都執(zhí)行ASIx_CTRL,才能保證正常的AS-i網(wǎng)絡(luò)通信。必須為每個CP 243-2模塊編寫條ASIx_CTRL指令。ASIx_CTRL指令根據(jù)ASIx_SYM符號表中的定義,在AS-i模塊和CPU的V存儲區(qū)之間復(fù)制從站IO數(shù)據(jù)。ASIx_CTRL只有一個輸出變量Error(錯誤信息),可以在ASI向?qū)У脑诰€幫助中查閱錯誤代碼的意義。
CP 243-2占用的CPU的數(shù)字量輸入、輸出字節(jié)(本例程為IB2和QB2)分別是AS-i的狀態(tài)(錯誤)字節(jié)和命令字節(jié)。它們各位的意義見表12-2和表12-3。
圖 12-14 調(diào)用ASI0_CTRL 子程序 圖 12-15 控制ASI通信位
表 12-2 狀態(tài)字節(jié)
表 12-3 控制字節(jié)
主站發(fā)送數(shù)據(jù)之前,應(yīng)將控制字節(jié)中的“ASI_COM”(Q2.6)置位為1(見圖12-15)。下載程序后,可以通過AS-i專用的符號表(見圖12-13)中的符號地址或絕對地址訪問AS-i 從站的輸入、輸出變量。
2. CP 243-2 的 Bank
分配給CP243-2的8個模擬量輸入字和8個模擬量輸出字(本例從AIW0和AQW0開始),可以被切換為稱為Bank(庫)的64個輸入?yún)^(qū)和64個輸出區(qū),每個區(qū)的長度為8個字。用控制字的第0~5位選擇Bank。Bank0用于標準從站或A從站的數(shù)字量輸入,Bank1用于AS-i 診斷,Bank2~Bank15用于命令調(diào)用的響應(yīng)數(shù)據(jù),Bank31用于B從站的數(shù)字量輸入。Bank32~Bank47是從站1~31的模擬量輸入。
3. 用ASI命令實現(xiàn)主站的控制和診斷功能
CP243-2用各種命令來實現(xiàn)主站的控制功能,AS-i命令的詳細資料見隨書光盤中的文件《CP243-2 AS-i Master Manual》的第5章。
子程序ASIx_READ從指定的庫讀取數(shù)據(jù)(見圖12-16),并將該數(shù)據(jù)存放在由指針DB_Ptr 指定的16B的V存儲區(qū)。子程序ASIx_WRITE將數(shù)據(jù)寫入CP243-2中指定的庫(見圖12-17),
用指針DB_Ptr指定16個字節(jié)的V存儲區(qū)的源地址。
圖 12-16 調(diào)用ASI0_READ 圖 12-17 調(diào)用ASI0_WRITE
以執(zhí)行命令Change_AS-i_Slave_Address(改變AS-i從站地址)為例,由CP243-2的用戶手冊可知,該命令的發(fā)送緩沖區(qū)的首字節(jié)為命令代碼16#0D,第2和第3個字節(jié)分別是從站老的地址和新的地址。可以用指令或用STEP 7-Micro/WIN的狀態(tài)表(相當(dāng)于STEP7的變量表)將上述信息寫入VB220~VB222,然后調(diào)用圖12-17中的子程序ASIx_WRITE,將VB220~VB222中的信息發(fā)送到從站。用子程序ASIO_READ接收從站發(fā)送的響應(yīng)信息(見圖12-16),存放在VB200開始的V存儲區(qū)。由CP243-2的用戶手冊可知,該命令的返回信息有兩個字節(jié),第1個字節(jié)為命令代碼16#0D,第2個字節(jié)為命令的狀態(tài)字節(jié)。
4. 用CP 243-2 的命令診斷AS-i從站
通過CP 243-2的命令代碼16#30,讀取激活的AS-i從站列表LAS、檢測到的AS-i從站列表LDS、永久性的AS-i從站列表LPS和AS-i規(guī)范的標志。程序與圖12-15~圖12-17基本上相同,ASIx_WRITE的 Bank 值為 2,僅需要發(fā)送一個字節(jié)的命令代碼 16#30。用ASIx_READ 讀取的數(shù)據(jù)存放在DB_Ptr指定的V存儲區(qū),前18個字節(jié)在Bank2,后10個字節(jié)在Bank3。Bank2的第0號字節(jié)為16#30,1號字節(jié)為命令狀態(tài)字節(jié),2~9號字節(jié)為LAS,10~17號字節(jié)為LDS。Bank3的0~7號字節(jié)為LPS。每個從站占二進制的一位,0號從站在第1個字節(jié)的最高位,7號從站在第1個字節(jié)的最低位。
Bank3的8號和9號字節(jié)為標志字節(jié),標志的詳細信息請查閱CP243-2的用戶手冊。