摘要:十字滑臺作為運動的常用部件在物流、機械等行業(yè)中使用廣泛,其運動的控制核心可以是單片機、PLC、工控板卡等。
本文采用PCI總線結(jié)構(gòu)的運動控制板卡作為控制核心,實現(xiàn)對十字滑臺的運動控制。本文詳細介紹十字滑臺系統(tǒng)的硬件結(jié)構(gòu)和軟件編程,系統(tǒng)硬件包括工控機運動控制板卡的選擇、驅(qū)動器的連接、外部信號的控制等。以及采用C#軟件編寫的windows窗口界面應(yīng)用程序。整個系統(tǒng)操作方便、功能完備、控制性能好。
關(guān)鍵詞:工控機;十字滑臺;C#語言;實時控制
中圖分類號:TG43
引言:
在工業(yè)自動化領(lǐng)域,有三種主要的控制方式,即:PLC控制、數(shù)控系統(tǒng)控制、PC-Based控制。近幾年隨著中國制造業(yè)結(jié)構(gòu)性調(diào)整,PLC控制和數(shù)控系統(tǒng)控制呈現(xiàn)萎縮低迷態(tài)勢,然而PC-Based運動控制卻充滿活力,發(fā)展速度令人矚目。
目前市場上大多數(shù)的PC-based運動控制產(chǎn)品較PLC而言可以實現(xiàn)更為復(fù)雜的運動控制;同時,應(yīng)用者可以利用PC-based廠商提供的底層函數(shù)庫進行靈活的二次開發(fā)和編程。在編程語言上,除傳統(tǒng)的PLC語言外,PC-based運動控制產(chǎn)品還為開發(fā)者提供C#、C++、Basic等豐富的電腦語言進行編程。
十字運動平臺是自動化設(shè)備常用的一種運動裝置,廣泛應(yīng)用到各個領(lǐng)域,如機械手臂、切割機、光刻機、傳送帶等,以工控機為核心的十字運動平臺,因其良好的可操作性和強大功能,被廣泛采用。
研華PCI-1245L 是4 軸的SoftMotion PCI 總線控制器卡,能夠?qū)崿F(xiàn)運動軌跡和時間控制, 程序員無需大規(guī)模修改應(yīng)用碼即可集成任何研華SoftMotion 運動控制器。該架構(gòu)能夠幫助用戶輕松維護和升級應(yīng)用。
本文介紹采用研華工控機及相應(yīng)運動控制卡,匹配安川驅(qū)動器,實現(xiàn)對十字平臺的運動控制,軟件采用C#語言編制,應(yīng)用程序具有方便的使用界面,能實現(xiàn)單軸、雙軸等直線、曲線運動。
1十字滑臺的硬件組成
該測試系統(tǒng)分為硬件系統(tǒng)和軟件系統(tǒng)。硬件系統(tǒng)以研華工控主機為控制核心,采用研華PCI-1245運動控制板卡、安川驅(qū)動器和電機實現(xiàn)對滑臺的運動控制。軟件采用C#編程,操作美觀、方便、并具有開放性。系統(tǒng)硬件框圖如圖1。
1.1 工控機板卡的選擇
系統(tǒng)的核心采用研華運動控制卡PCI-1245L。PCI-1245L 是4 軸的SofMotion PCI 總線控制器卡,板卡配有高性能FPGA,其中包括SoftMotion 算法,能夠?qū)崿F(xiàn)運動軌跡和時間控制,以滿足精確運動中的同步應(yīng)用需求。
1.2伺服驅(qū)動器的連接
選用PCI-1245L板卡中的X軸和Y軸,X和Y兩軸和驅(qū)動器的連接方式是相同的,如圖2,圖3。板卡的輸出脈沖采用差分方式連接,脈沖輸出方式采用cw/ccw模式,行程限位開關(guān)和原點都采用光耦隔離的方式接入板卡,行程限位開關(guān)用于保護系統(tǒng)。 該輸入信號通過光耦合器和RC 過濾器連接。 采用限位開關(guān)時,外部電源VEX DC 24 V 將成為光耦合器的電壓源。 因此,將啟用線程功能。電路圖如圖4。編碼器反饋信號到達時,將ECA+/ECA-連接至編碼器輸出的相位A。這是一個差分對。同樣,也適用于ECB+/- 和ECZ+/-。PCI-1245L 的默認設(shè)置為正交輸入(4xAB 相位)。在上述電路圖中,PCI-1245L 采用高速光耦合器用于隔離。源的編碼器輸出可為差分模式或開集模式??山邮艿淖畲?xAB 相位反饋頻率約為4 MHz。
2 軟件設(shè)計
研華運動設(shè)備采用“通用運動架構(gòu)”為軟件架構(gòu)。該架構(gòu)包括三層:設(shè)備驅(qū)動層、整合層和應(yīng)用層。在應(yīng)用層選用的二次開發(fā)編程語言有C++、C、C#、VB、Labview等多種方式。用戶需了解通用運動驅(qū)動、根據(jù)編程語言調(diào)用對應(yīng)的API接口程序,實現(xiàn)應(yīng)用程序的編寫。研華通用運動(ACM)架構(gòu)定義了三種類型的操作對象:設(shè)備、軸和群組。每個類型都有自己的方法、屬性和狀態(tài)。
工控機的軟件要求簡潔,方便,能直接控制硬件。C#語言簡潔,保留了C++的強大功能,具有快速開發(fā)的自由特性,并且.NET框架為C#提供了一個強大的、易用的、邏輯結(jié)構(gòu)一致的程序設(shè)計環(huán)境。因此系統(tǒng)采用C#語言來編寫測試程序。
該系統(tǒng)軟件是采用VS2010作為開發(fā)工具,在Windows7操作系統(tǒng)下的窗體應(yīng)用程序。測試程序模塊化編程,包括回原點、點對點、線性位移、調(diào)速、位移等8個模塊,每個模塊即可以獨立運行又可以綜合運行。其中點對點程序流程圖如下:
using System;
。。。。。。
using Advantech.Motion;//Common Motion API
using System.Runtime.InteropServices; //For Marshal
namespace PCL1245L_DOMO
{
public partial class Frm_ptp : Form
{
public Frm_ptp()
{
InitializeComponent();
}
。。。。。。
private void BtnOpenBoard_Click_1(object sender, EventArgs e)
{
uint Result;
uint i = 0;
uint[] slaveDevs = new uint[16];
uint AxesPerDev = new uint();
uint AxisNumber;
uint buffLen = 0;
Result = Motion.mAcm_DevOpen(DeviceNum, ref m_DeviceHandle);
if (Result != (uint)ErrorCode.SUCCESS)
{
MessageBox.Show("Can Not Open Device", "PTP", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
buffLen = 4;
Result = Motion.mAcm_GetProperty(m_DeviceHandle, (uint)PropertyID.FT_DevAxesCount, ref AxesPerDev, ref buffLen);
if (Result != (uint)ErrorCode.SUCCESS)
{
MessageBox.Show("Get Property Error", "PTP", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
AxisNumber = AxesPerDev;
buffLen = 64;
Result = Motion.mAcm_GetProperty(m_DeviceHandle, (uint)PropertyID.CFG_DevSlaveDevs, slaveDevs, ref buffLen);
if (Result == (uint)ErrorCode.SUCCESS)
{
i = 0;
while (slaveDevs[i] != 0)
{
AxisNumber += AxesPerDev;
i++;
}
}
。。。。。。
}
private void BtnMove_Click_1(object sender, EventArgs e)
{
UInt32 Result;
if (m_bInit)
{
if (radioButtonRel.Checked)
{
Result=Motion.mAcm_AxMoveRel(m_Axishand[CmbAxes.SelectedIndex], Convert.ToDouble(textBoxPos.Text));
}
else
{
Result = Motion.mAcm_AxMoveAbs(m_Axishand[CmbAxes.SelectedIndex], Convert.ToDouble(textBoxPos.Text));
}
if (Result != (uint)ErrorCode.SUCCESS)
{
MessageBox.Show("PTP Move Failed With Error Code[0x" + Convert.ToString(Result, 16) + "]", "PTP", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
}
return;
}
}
}
4結(jié)論
該系統(tǒng)屬于工控機測控系統(tǒng),具有實時運動功能。硬件上采用工控機結(jié)合運動控制板卡,實現(xiàn)十字滑臺的運動控制,系統(tǒng)集成度高。由C#語言編輯的應(yīng)用程序功能齊全,操作方便。整個設(shè)備可以應(yīng)用在數(shù)控床、物流傳動、現(xiàn)代生產(chǎn)線等。
參考文獻:
[1]李江全.計算機測控系統(tǒng)設(shè)計與編程實現(xiàn).[M]電子工業(yè)出版社,2008
[2]PCI1245用戶手冊[Z].研華公司.2011
[4]Common Motion用戶手冊 [Z].研華公司.2011
[5]Anders Hejlsberg等.譯者:陳寶國.C#程序設(shè)計語言[M]北京:機械工業(yè)出版社,2011 References
[1] Li Jiang-quan. Computer measurement and control system design and programming.[M] Electronic industry press,2008
[2] PCI-1245L_User manual_(CH) Advantech Inc. 2011
[3] Common Motion _User manual_(CH) Advantech Inc. 2011
[4] Anders Hejlsberg C# Programming Language .[M]Beijing:Mechanical industry press,2011
作者簡介:欒偉峰 女 出生于1973年11月 副教授/高級工程師
1994年~2003年 在蘇州半導(dǎo)體總廠有限公司工作 從事自動控制設(shè)備的改造和設(shè)計。
2003~今 在蘇州工業(yè)園區(qū)職業(yè)技術(shù)學(xué)院 電氣自動化技術(shù)專業(yè)主任 研究方向為自動化控制技術(shù)