PAC應用于某動力系統訓練模擬器中
SendCommand(CReplyCollectStart);//表示收到開始采集命令
break;
case Ssendgroupdata: //有效數據指令
{ for(CircleNum=0;CircleNum
{ switch (RECVITEMS.Items[CircleNum].Command) //判斷子命令
{ case SsendoneDOdata: //server 發送的開關量單字節指令
WriteOneDOChannel(RECVITEMS.Items[CircleNum]);
break;
case SsendoneAOdata: //server 發送的模擬量單字節指令
WriteOneAOChannel(RECVITEMS.Items[CircleNum]);
break;
default: break;
} } }
default: break;
} } }
3.3 數據采集發送子程序
為了降低網絡傳輸的數據量,PAC 控制器只向服務器發送狀態發生變化的數據,而狀態沒有發生變化的數據則不發送。同樣,服務器通信程序SimuTrans 只向PAC 控制器發送模型計算后發生變化的數據。
為了保證數據不會丟失,針對不同種類的數據采用了不同的發送、回送方式。在該模擬器中,輸入的模擬量為艇員操作面板上的旋鈕時帶動內部的電位器產生0~10V 的模擬電壓信號,由于其操作是連續過程,操作過程會產生一系列變化數據,因此5017H 采集到的變化數據直接發送到服務器即可。對于操作按鈕、多位開關等部件產生的開關量數據,為了避免數據丟失采用了重復發送,并且服務器收到數據后要做應答,確保了數據傳輸的可靠性。
4 結論
該模擬器2007 年9 月通過了驗收、鑒定。在動力系統管理人員及在校學員的學習與訓練過程中發揮了重要作用,獲得了良好的軍事和經濟效益。該半實物仿真訓練模擬器的成功研制實踐說明,將新型PAC 控制器應用于模擬器代替傳統的工控機或PLC 不僅能縮短開發周期、使系統運行穩定可靠,而且系統開放性好,可以方便地與其他系統的模擬器連接組成更大規模的模擬器進行訓練,是模擬器研制的一種新思路。
評論