/WMX3/軟件運動控制怎么用?
這是您最近的疑問么?
如今工業(yè)控制領(lǐng)域PLC、板卡等產(chǎn)品停滯不前,可軟件運動控制憑借其控制性能、快速開發(fā)與更新和性價比一枝獨秀。為方便廣大客戶熟悉WMX3軟件功能,掌握使用方法,公司特推出WMX3系列文檔。在WMX3基礎(chǔ)開發(fā)教程篇,我們會從創(chuàng)建一個工程的操作講起,帶您一步步走近WMX3軟件。接下來第一篇教程為:使用C#語言創(chuàng)建WMX3工程。
創(chuàng)建工程概述
開發(fā)WMX3應(yīng)用程序首先要創(chuàng)建工程,C#是WMX3的主要編程語言之一。C#開發(fā)所需添加的庫所在文件夾為C:\ProgramFiles\SoftServo\WMX3\Lib,其中WMX3Api_CLRLib.dll是必要的庫,其它庫為可選。IMDll.dll應(yīng)復(fù)制到可執(zhí)行程序同一文件夾下。
下面以C#啟動通訊的程序為例,展示具體創(chuàng)建工程步驟。該方法通用于WMX3_V3.3及以上版本。
操作環(huán)境
系統(tǒng)環(huán)境:RTX3.7
軟件版本:WMX3_V3.4u1_64bitVisualStudio2012
編程語言:C#
步驟
利用MicrosoftVisualStudio創(chuàng)建一個控制臺程序。
圖1創(chuàng)建控制臺程序
打開配置管理器,當(dāng)使用64-bit版本的WMX3庫(即RTX64)時,活動解決方案平臺要切換到X64。
圖2配置管理器
圖3切換平臺
3. 右擊解決方案資源管理器中的引用,選擇“添加引用”。在引用管理器中,點擊下方的瀏覽。
導(dǎo)航至WMX3安裝目錄下的Lib文件夾(默認"C:\ProgramFiles\SoftServo\
WMX3\Lib"),選擇以下的dll文件添加:
AdvancedMotionApi_CLRLib.dll,
ApiBufferApi_CLRLib.dl
CompensationApi_CLRLib.dll
CoreMotionApi_CLRLib.dll
CyclicBufferApi_CLRLib.dll
EventApi_CLRLib.dll
IOApi_CLRLib.dll
LogApi_CLRLib.dll
UserMemoryApi_CLRLib.dll
WMX3Api_CLRLib.dll
注意:WMX3Api_CLRLib.dll是必要的庫,其它庫為可選。
圖4引用管理器
圖5添加庫
5. 右擊”Propeties”,選擇“打開”。在生成事件中,點擊“編輯后期生成事件”按鈕,在彈出的后期生成事件命令行中輸入以下語句:
copy/y"C:\ProgramFiles\SoftServo\WMX3\lib\IMDll.dll""$(TargetDir)"
圖6生成事件
圖7后期生成事件命令
8. 文件頂部增加聲明,如:
usingWMX3ApiCLR
9. 添加下面的示例代碼,啟動通訊,引擎將與伺服,IO模塊或者其他從站設(shè)備建立通訊,此外,WMX3也可以啟動虛擬平臺通訊(simulatorplatform),用于測試,模擬仿真。
namespaceCreatCsharpProjece1
{
usingWMX3ApiCLR;
classProgram
{
staticvoidMain(string[]args)
{
WMX3Apiwmxlib=newWMX3Api();
wmxlib.CreateDevice("C:\\ProgramFiles\\SoftServo\\WMX3",DeviceType.DeviceTypeNormal);
wmxlib.StartCommunication(5000);System.Threading.Thread.Sleep(5000);
wmxlib.StopCommunication();
wmxlib.CloseDevice();
}
}
}
10. 打開工具WMX3Console,運行程序,監(jiān)控通訊狀態(tài)。當(dāng)軸號變?yōu)榫G色且CommunicationState變?yōu)镺n時,證明通訊開啟。
圖8WMX3Console界面
附加說明
對于64位系統(tǒng),當(dāng)編譯平臺為32位時應(yīng)注意下面三點,其他操作步驟不變
?、偬^步驟2,無需切換解決方案平臺
?、诓襟E3中改為導(dǎo)航至"C:\ProgramFiles\SoftServo\WMX3\Lib\x86"文件夾,選擇同樣的dll文件添加
?、鄄襟E5改為輸入以下語句:
copy/y"C:\ProgramFiles\SoftServo\WMX3\lib\x86\IMDll.dll""$(TargetDir)"