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