沈金鑫,趙振南
(南京音飛儲存設(shè)備(集團(tuán))股份有限公司,江蘇 南京 211102)
穿梭車是智能化倉儲系統(tǒng)中一種搬運(yùn)貨位單元(主要是托盤和料箱)的自動(dòng)化設(shè)備,在貨架鋪設(shè)的軌道上行走來進(jìn)行貨位單元的輸送,包含多層穿梭車、子母車、四向穿梭車等。四向穿梭車可實(shí)現(xiàn)平面內(nèi)X 方向和Y 方向的運(yùn)動(dòng),具備自動(dòng)切換方向的功能,而且允許同一平面內(nèi)多輛穿梭車同時(shí)進(jìn)行作業(yè)[1-2]。
目前,功能測試都需要實(shí)車在貨架上才能進(jìn)行測試,在初期控制策略或功能尚不完善的情況,帶來了較大的不確定因素和可能存在的風(fēng)險(xiǎn),而且某些異常情況在貨架上進(jìn)行模擬非常麻煩?;诖?,提出了搭建一套穿梭車硬件在環(huán)仿真平臺,用于對穿梭車控制器的控制策略和功能進(jìn)行調(diào)試和測試。
硬件在環(huán)仿真是指用實(shí)時(shí)的數(shù)學(xué)模型來模擬被控對象及其傳感器、執(zhí)行器,能夠模擬被控對象的各種行為和狀態(tài),并與已裝載控制軟件的控制器進(jìn)行連接,從而使得控制器能夠正確工作和運(yùn)行。具有可以降低研發(fā)成本,縮短系統(tǒng)開發(fā)周期,并且實(shí)驗(yàn)可重復(fù)性好,可模擬極端或故障條件,廣泛應(yīng)用于汽車、航空航天、醫(yī)療器械等領(lǐng)域[3-4]。
硬件在環(huán)仿真平臺由Ethernet通信控制主機(jī)、行走仿真板卡、換向仿真板卡、頂升仿真板卡、貨叉仿真板卡和能源仿真板卡組成,與PC上位機(jī)仿真控制軟件通過以太網(wǎng)進(jìn)行通信,通過I/O 接口、RS-485 接口、CAN 接口、A/D 轉(zhuǎn)換、D/A 轉(zhuǎn)換、正交脈沖接口與被測的穿梭車控制器連接,對被測穿梭車控制器進(jìn)行全方面的、系統(tǒng)的測試。硬件在環(huán)仿真系統(tǒng)架構(gòu),如圖1所示。
硬件在環(huán)仿真平臺中,Ethernet通信控制主機(jī)與各個(gè)功能仿真板卡(行走仿真板卡、換向仿真板卡、頂升仿真板卡、貨叉仿真板卡和能源仿真板卡)之間通過CAN 總線和RS-485 總線進(jìn)行通信,數(shù)據(jù)量大、時(shí)效性低的配置數(shù)據(jù)通過RS-485進(jìn)行傳輸,數(shù)據(jù)量小、高實(shí)時(shí)的過程數(shù)據(jù)通過CAN總線進(jìn)行傳輸。
圖1 硬件在環(huán)仿真系統(tǒng)架構(gòu)圖
通信控制主機(jī)主要實(shí)現(xiàn)基于仿真控制軟件通過Ethernet下發(fā)的策略對仿真模型進(jìn)行運(yùn)算,通過CAN總線和RS-485 總線給各個(gè)功能仿真板卡發(fā)送故障注入指令,并接收各個(gè)功能仿真板卡返回的相關(guān)參數(shù)傳輸至仿真控制軟件[5-6]。
通信控制主機(jī)內(nèi)建1 個(gè)TCP Server 和1 個(gè)TCP Client,用于和PC上位機(jī)仿真控制軟件進(jìn)行通信;通過1 路CAN 總線與各個(gè)功能仿真板卡進(jìn)行高實(shí)時(shí)的數(shù)據(jù)交換,通過1 路RS-485 總線與各個(gè)功能仿真板卡進(jìn)行非實(shí)時(shí)的數(shù)據(jù)傳輸。
通信控制主機(jī)的單片機(jī)采用MIPS32?microAptiv?和M-Class 內(nèi)核的PIC32MZ1024EFM,主頻200MHz,自帶1MB Flash 和512KB RAM,支持浮點(diǎn)運(yùn)算(FPU),帶MII 和RMII 接口的10/100 Mbps 以太網(wǎng)MAC。外圍電路需要設(shè)計(jì)一個(gè)以太網(wǎng)PHY 電路,CAN總線接口和RS-485接口。
2.1.1 以太網(wǎng)PHY電路。以太網(wǎng)PHY接口采用Microchip 公司的LAN8720AI,通過標(biāo)準(zhǔn)RMII 接口與以太網(wǎng)MAC 通信,支持10Mbps 和100Mbps 運(yùn)行和HP Auto-MDIX,可使用直連或交叉LAN 電纜。以太網(wǎng)PHY電路原理圖如圖2所示。
圖2 以太網(wǎng)PHY電路
2.1.2 CAN 收發(fā)器電路。PIC32MZ1024EFM 內(nèi)部的CAN 模塊完全符合CAN 2.0B 協(xié)議,最高速率1 Mbps,32 個(gè)報(bào)文接收與發(fā)送FIFO,每個(gè)FIFO 最多可包含32條報(bào)文,總共可包含1 024條報(bào)文。
在CAN 制器和物理總線之間需要CAN 收發(fā)器,為總線提供差分發(fā)射能力并為CAN控制器提供差分接收能力,CAN收發(fā)器電路圖如圖3所示。
圖3 CAN收發(fā)器電路
2.1.3 RS-485接口電路。PIC32MZ1024EFM內(nèi)部的UART(通用異步收發(fā)器)模塊,具有8級深FIFO發(fā)送和接收數(shù)據(jù)緩沖區(qū),可以更好地進(jìn)行數(shù)據(jù)傳輸。
RS-485接口采用平衡驅(qū)動(dòng)器和差分接收器的組合,抗共模干擾能力增強(qiáng)。RS-485 接口電路如圖4所示。
通信控制主機(jī)程序包括主程序、模型運(yùn)算、Eth-ernet接口、CAN接口、RS-485接口等部分。
圖4 RS-485轉(zhuǎn)換電路
主程序在完成外設(shè)初始化之后,初始化TCP/IP軟件協(xié)議棧并創(chuàng)建1個(gè)TCP Server和1個(gè)TCP Client,TCP Client連接至PC上位機(jī)仿真控制軟件的Server,接收仿真控制軟件的配置信息并回傳各個(gè)功能仿真板卡的當(dāng)前參數(shù);在主程序中按照配置的信息進(jìn)行模擬運(yùn)算,并通過CAN接口和RS-485接口與各個(gè)仿真板卡進(jìn)行數(shù)據(jù)傳輸,根據(jù)故障配置信息即時(shí)給各個(gè)功能仿真板卡發(fā)送故障注入指令[7-8]。
行走仿真板卡要能夠模擬行走伺服驅(qū)動(dòng)器的CANopen 協(xié)議接口和I/O輸入輸出、從動(dòng)輪編碼器脈沖信號、與行走有關(guān)的測距傳感器和光電傳感器的狀態(tài)。
當(dāng)接收到穿梭車控制器輸出的速度控制0-10V模擬量、使能和方向2個(gè)I/O,能夠更新CANopen中狀態(tài)字、當(dāng)前電流、當(dāng)前速度、編碼器脈沖數(shù)等參數(shù),同時(shí)通過PWM輸出與速度對應(yīng)的正交編碼器脈沖數(shù)。當(dāng)接收到控制主機(jī)發(fā)送的故障模擬指令時(shí),能夠產(chǎn)生與之對應(yīng)的故障,例如模擬行走起始時(shí)被卡,則模擬輸出的從動(dòng)輪編碼器脈沖數(shù)輸出小于模擬輸出的伺服驅(qū)動(dòng)器CANopen 中的編碼器脈沖數(shù),且實(shí)際電流輸出較大。
行走仿真板卡采用意法半導(dǎo)體公司的STM32F407 微控制器,外圍具有2 個(gè)CAN 總線接口、2個(gè)RS-485接口、1路模擬量輸入、3個(gè)數(shù)字量輸入、1個(gè)數(shù)字量輸出、1 組正交編碼器脈沖輸出、2 路4-20mA輸出。
STM32F407系列微控制器基于ARMRCortexR-M4內(nèi)核,主頻高達(dá)168MHz,支持浮點(diǎn)運(yùn)算(FPU),具有2個(gè)CAN接口,6個(gè)串行通信接口,2個(gè)DAC輸出。
3.1.1 模擬輸入電路。模擬輸入電路如圖5所示,采用分壓電路和單位增益的運(yùn)放緩沖器構(gòu)成,然后由STM32F407 內(nèi)部ADC 進(jìn)行轉(zhuǎn)換,用于采集穿梭車控制器輸出的控制行走電機(jī)速度的0-10V模擬量。當(dāng)輸入電壓過高的時(shí)候,TVS6就會(huì)工作,從而保護(hù)輸入電路。
圖5 模擬輸入電路
3.1.2 4- 20mA 輸出電路。 4- 20mA 電流由STM32F407 內(nèi)部DAC 經(jīng)過電壓跟隨器,與R54 電流采樣電阻上的電壓進(jìn)行比較,從而控制N-MOS 的導(dǎo)通與否。模擬輸出電路如圖6所示。
圖6 4-20mA輸出電路
3.1.3 I/O輸入輸出電路。穿梭車控制器輸出的驅(qū)動(dòng)器使能、行走方向、清除報(bào)警等24V 數(shù)字量通過TLP184光耦來實(shí)現(xiàn)電平轉(zhuǎn)換,原理圖如圖7所示。
行走仿真板卡產(chǎn)生的驅(qū)動(dòng)器報(bào)警信號、光電傳感器信號都是由高側(cè)智能功率開關(guān)芯片ITS4200 來實(shí)現(xiàn)的,具有過流保護(hù)功能,原理圖如圖8所示。
圖7 24V數(shù)字量輸入電路
3.1.4 正交脈沖輸出電路。正交編碼器脈沖是由STM32F407內(nèi)定時(shí)器PWM模式產(chǎn)生2路PWM信號,通過高速光耦TLP152 轉(zhuǎn)換為24V,并設(shè)置有關(guān)參數(shù)使得相位相差1/4T。正交脈沖輸出轉(zhuǎn)換電路如圖9所示。
圖8 24V數(shù)字量輸出電路
圖9 正交脈沖信號處理電路
程序流程圖如圖10 所示,程序包括主程序、CANopen 協(xié)議接口、與控制主機(jī)之間的數(shù)據(jù)交換、處理速度輸入的定時(shí)任務(wù)等部分。
主程序在完成外設(shè)初始化之后,開啟一個(gè)ms 級的定時(shí)器中斷,在中斷中讀取模擬量輸入并換算實(shí)時(shí)速度,實(shí)時(shí)輸出正交脈沖,積分得到實(shí)際位置,更新CANopen協(xié)議中的狀態(tài)字、實(shí)際速度、實(shí)際電流等參數(shù)。在主循環(huán)中處理電機(jī)CANopen 接口,能夠模擬實(shí)際電機(jī)的運(yùn)行狀態(tài)。同時(shí),通過CAN 接口與RS-485 接口向控制主機(jī)反饋響應(yīng)的數(shù)據(jù)信息,且執(zhí)行控制主機(jī)下發(fā)的故障注入指令,并在指定的情況下注入指定的故障。
換向仿真板卡、頂升仿真板卡、貨叉仿真板卡及能源仿真板卡,能夠模擬伺服驅(qū)動(dòng)器的CANopen 協(xié)議接口、RS-485 接口的傳感器或執(zhí)行器和24V 數(shù)字量信號。
圖10 行走仿真板卡程序流程圖
換向仿真板卡要能夠模擬2 個(gè)伺服電機(jī)的CANopen 協(xié)議接口和用于姿態(tài)檢測的接近開關(guān)傳感器;頂升仿真板卡模擬1個(gè)伺服電機(jī)驅(qū)動(dòng)器的CANopen協(xié)議接口、RS-485接口的角度傳感器和用于狀態(tài)檢測的接近開關(guān)傳感器;貨叉仿真板卡模擬1個(gè)伺服電機(jī)驅(qū)動(dòng)器的CANopen 協(xié)議接口、RS-485 接口的撥桿控制板和用于貨位檢測的光電傳感器;能源仿真板卡能夠模擬電池或超級電容的RS-485通信接口、用于指示電量的數(shù)字量信號。
該硬件在環(huán)仿真平臺能通過各個(gè)功能性仿真板卡模擬出穿梭車運(yùn)行所需要的信號和各個(gè)動(dòng)作流程,且便于實(shí)現(xiàn)各種現(xiàn)實(shí)中難以實(shí)施或有危險(xiǎn)的故障注入。經(jīng)過調(diào)試和試驗(yàn),該硬件在環(huán)仿真平臺已成功應(yīng)用于料箱類、托盤類四向穿梭車的測試和同層多臺車調(diào)度系統(tǒng)的開發(fā)。另外,還可以應(yīng)用于多層穿梭車、穿梭式子母車及穿梭板車的功能測試。