opencnc46xx系列開發(fā)手冊_第1頁
opencnc46xx系列開發(fā)手冊_第2頁
opencnc46xx系列開發(fā)手冊_第3頁
opencnc46xx系列開發(fā)手冊_第4頁
opencnc46xx系列開發(fā)手冊_第5頁
已閱讀5頁,還剩71頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

版本升級說-3上版本總頁編寫工程排版工程校對日版本/頁結確版本升級說-3上版本總頁編寫工程排版工程校對日版本/頁結確-4目錄資源介紹 .-8存器9運行控制位寄存器..............................................................................................................-10-運行控制字寄存器13-CNC參數管理寄存器30PMC目錄資源介紹 .-8存器9運行控制位寄存器..............................................................................................................-10-運行控制字寄存器13-CNC參數管理寄存器30PMC軸控參數寄存器31PMC開發(fā)庫函數詳解361.1.通訊管理函數類..................................................................................................................-361.1.1.COMM_LibVer()...........................................................................................................................-37 .-37 .-38 .-381.1.5.COMM_CloseNetConn( .-39 .-40 .-40 .-41 .-411.1.10.COMM_AsciiToByte( .-42 .-421.1.12.COMM_Recv( .-431.2.加工管理函數 .-431.2.1.WORK_SelectComm()..................................................................................................................-441.2.2.WORK_GetCommInfo( .-44 .-45 .-45 .-46 .-47 .-48 .-49 .-491.3.參數管理函數 .-511.3.1.PARA_SelectComm()....................................................................................................................-53-51.3.2.PARA_GetCommInfo( .-541.3.3.PARA_GetParaVerify( .-541.3.4.PARA_GetParaInfo( .-1.3.2.PARA_GetCommInfo( .-541.3.3.PARA_GetParaVerify( .-541.3.4.PARA_GetParaInfo( .-541.3.5.PARA_ReadParaTab( .-551.3.6.PARA_TabToSort( .-55 .-551.3.8.PARA_ReadValue( .-571.3.9.PARA_WriteValue( .-571.3.10.PARA_ReadMultValue( .-581.4.文件管理函數 .-591.4.1.FS_SelectComm()..........................................................................................................................-61 .-62 .-621.4.4.FS_FOpen( .-631.4.5.FS_FRead( .-63 .-641.4.7.FS_FClose( .-64 .-641.4.9.FS_FSeek( .-66 .-66 .-671.4.12.FS_RmDir( .-67 .-68 .-682.PMC開發(fā)庫使用導 .-69-2.2Windows下動態(tài)鏈接庫的調用69-工業(yè)觸摸屏編程 .-711.步科的工業(yè)觸摸屏實 .-71-1.2.741.3.75-6件設 .-76-件設 .-76-7開放資源介 資源表采用統一編址方開放資源介 資源表采用統一編址方式進行資源調用和傳G32宏地址指向的是其他類型的變則會將其他變量的值轉換進行處理,在取值時要注意這32位浮點值給到G代PLC&ModBus地址是用于內部PLC或者外部設備通過Modbus進行訪問時的地址符,PLC或外部設備均通過該地址訪問NC所有資源該地址默認指向的是16位整型寄存器,如果指向的是一個浮點或32位的整型數據,則會占用兩個連續(xù)的地址號來拼湊成32例如地址R5042代表的是進給速度,但進給速度是32位整型的數據,那么讀回來則占用了R5042,R5043兩個16位地址來共同表達32位整型;R504216位數據,504316如果直接讀R5043,則會因為數據邊界不對齊而讀取失敗,或返回空系統的變量類型和訪問權限的定*08161616323232位浮點數據(32-bitIEEE-754)具備讀權限具備可讀可寫權限(ReadorWrite)-8寄存注:CNC特殊操作寄存器的訪問同樣遵循Modbus的協議格式,在訪問數據時,需要順算的高級語言編程使用,對于PLC與觸摸屏的訪問可能會存在一定困難。-9PLC地*特殊文件訪問命令寄存*特殊文件訪問數據寄存*特殊文件訪問數據長度寄存*特殊文件訪問數據位置寄存*特殊文件訪問錯誤及狀態(tài)寄存505寄存注:CNC特殊操作寄存器的訪問同樣遵循Modbus的協議格式,在訪問數據時,需要順算的高級語言編程使用,對于PLC與觸摸屏的訪問可能會存在一定困難。-9PLC地*特殊文件訪問命令寄存*特殊文件訪問數據寄存*特殊文件訪問數據長度寄存*特殊文件訪問數據位置寄存*特殊文件訪問錯誤及狀態(tài)寄存505~保*特殊參數管理命令寄存*特殊參數管理數據寄存*特殊參數管理數據長度寄存*特殊參數管理數據位置寄存*特殊參數管理錯誤及狀態(tài)寄存525~保*特殊多寄存器訪問命令寄存*特殊多寄存器訪問數據寄存*特殊多寄存器訪問數據長度寄存*特殊多寄存器訪問數據位置寄存*特殊多寄存器訪問錯誤及狀態(tài)寄存545~保CNC運行控制位寄存CNC運行控制位寄存器CNC運行控制位寄存CNC運行控制位寄存器用于顯示當前控制器的IO狀態(tài)及對可控制的輸出端口進行控-10PLC地R0~-1124:手輪25:手輪-1124:手輪25:手輪軸選26:手輪27:手輪軸選28:手輪29:手輪軸選30:手輪31:手輪軸選32:手輪33:手輪34:伺服X報35:伺服Y報36:伺服Z報37:伺服A報其它位地址保留未R500~-12540:RUN燈(只針541:ALARM-12540:RUN燈(只針541:ALARM燈(只針對CNC8860)位地址對應的面板LED輸出端口其它位地址保留保字寄存G代碼的執(zhí)行狀態(tài)同時寄存器一-字寄存G代碼的執(zhí)行狀態(tài)同時寄存器一-13PLC地訪問權對應IO0~367,例01…7對應IO0~367,每個地址16IO06…92對應IO0~367,例…對應IO0~367,每個地址16IO…對應LED輸出0~175,例-14…LED0~175,每個地…128節(jié)當前報警提示信息內容字符UTF8編碼格式-14…LED0~175,每個地…128節(jié)當前報警提示信息內容字符UTF8編碼格式128節(jié)警狀態(tài)第0位128節(jié)警狀態(tài)第1位128節(jié)警狀態(tài)第2位128節(jié)警狀態(tài)第3位128節(jié)警狀態(tài)第4位128節(jié)警狀態(tài)第5位128節(jié)警狀態(tài)第6位128節(jié)警狀態(tài)第7位128節(jié)警狀態(tài)第8位128字自定義報警信息9,對應外部-15數94128節(jié)自定義報警信息10,對應外部報警狀態(tài)第10位8128節(jié)自定義報警信息11,對應外部報警狀態(tài)第11位128節(jié)自定義報警信息12,對應外部報警狀態(tài)第12位128節(jié)自定義報警信息13,對應外部報警狀態(tài)第13位128節(jié)串行報警信息14,對應外部報警狀態(tài)第14位128節(jié)警告位報警信息15,對應外部報警狀態(tài)第15-15數94128節(jié)自定義報警信息10,對應外部報警狀態(tài)第10位8128節(jié)自定義報警信息11,對應外部報警狀態(tài)第11位128節(jié)自定義報警信息12,對應外部報警狀態(tài)第12位128節(jié)自定義報警信息13,對應外部報警狀態(tài)第13位128節(jié)串行報警信息14,對應外部報警狀態(tài)第14位128節(jié)警告位報警信息15,對應外部報警狀態(tài)第15位240節(jié)字符編碼格式為UTF8的格128節(jié)G128節(jié)G128節(jié)G128節(jié)G128節(jié)G3528~保系統功能信號狀態(tài)映器0:安全信1:氣壓信2:夾料信3:系統油4:對刀儀檢-165:報警6:運行7:潤滑輸8:冷卻輸9:主軸正轉輸10:主軸11:系統12:主軸13:變-165:報警6:運行7:潤滑輸8:冷卻輸9:主軸正轉輸10:主軸11:系統12:主軸13:變頻14:對刀儀吹氣15:對刀儀限位系統功能信號狀態(tài)映器0:外部急停1:外部啟動2:外部暫停3:手輪4:手輪5:手輪6:手輪軸選7:手輪軸選8:手輪軸選9:手輪軸選10:手輪11:手輪12:手輪工件加工工件最大加工當前系統內部按系統外部按鍵響應(注當前系統控制模-170:錄1:自2:手4:歸插補倍快移倍主軸倍手動倍編程速實際速手動速主軸狀-170:錄1:自2:手4:歸插補倍快移倍主軸倍手動倍編程速實際速手動速主軸狀1:加載就2:正在加BIT7~BIT0加載進度,值范100加工文件程序16字節(jié)R:當前加工文件名所有加工程序存放在控制器固定目錄下系統報警號(注字符編碼為UTF8格式。T5:0:連1:單BT~I:保-18BTBT0:運行狀0:停1:運2:暫3:單節(jié)暫-18BTBT0:運行狀0:停1:運2:暫3:單節(jié)暫14產生的報警內容可讀取對應自手輪軸0:沒有選擇1:X2:Y3:Z4:A憶執(zhí)行條件(0-不符合,1-符;;BT(讀寫):決定BIT0控制否有效(0-無效,1-有效BT讀寫):BIT11斷點執(zhí)行的提示信息可以自行敘述打印,亦可讀取地址2588寄存器組的內容進行打印顯示加工模0:本地文件加工模式1:在線加工模式89W在線加工操作命讀:剩余存儲塊數寫:寫任意值清空緩存據最大240字節(jié)。為數據長度;其余的為數據內即數據幀格式為序號+長度N+N個數240節(jié)當前代碼運行位置(寄存器組的內容進行打印顯示加工模0:本地文件加工模式1:在線加工模式89W在線加工操作命讀:剩余存儲塊數寫:寫任意值清空緩存據最大240字節(jié)。為數據長度;其余的為數據內即數據幀格式為序號+長度N+N個數240節(jié)當前代碼運行位置(只 加工使用歸零標志及當前歸零狀態(tài):高8態(tài)0歸零動作結束,1表示正在執(zhí)行歸零動~保G碼0組模態(tài)G碼1組模態(tài)G碼2組模態(tài)G碼3組模態(tài)G碼4組模態(tài)G碼5組模態(tài)G碼6組模態(tài)-19-20G碼7組模態(tài)G碼8組模態(tài)G碼9組模態(tài)G碼10組模態(tài)4011~保刀具半徑補償編號刀具長度補償編號輔助功能M代當前程序編號O字段4116~保刀具功能號4121~保X軸-20G碼7組模態(tài)G碼8組模態(tài)G碼9組模態(tài)G碼10組模態(tài)4011~保刀具半徑補償編號刀具長度補償編號輔助功能M代當前程序編號O字段4116~保刀具功能號4121~保X軸絕對Y軸絕對Z軸絕對坐A軸絕對B軸絕對C軸絕對5012~保X軸相對Y軸相對Z軸相對坐A軸相對B軸相對C軸相對5032~保X軸機械Y軸機械Z軸機械位A軸機械-218B軸機械0C軸機械保0X軸反饋2Y軸反饋Z軸反饋位A軸反饋B軸反饋C軸反饋5068~保X軸刀具位置補償Y-218B軸機械0C軸機械保0X軸反饋2Y軸反饋Z軸反饋位A軸反饋B軸反饋C軸反饋5068~保X軸刀具位置補償Y軸刀具位置補償Z軸刀具位置補A軸刀具位置補償5088~保X軸外部寫正值:X軸正方向運行寫負值:X軸負方向運行寫零值:X軸立即停止Y軸外部寫正值:Y軸正方向運行寫負值:Y軸負方向運行寫零值:Y軸立即停止Z軸外部手寫負值:Z軸負方向運行寫零值:Z軸立即停止A軸外部寫正值:A軸正方向運行寫負值:A軸負方向運行寫零值:A軸立即停止B軸外部寫正值:B軸正方向運-22寫負值:B軸負方向運行寫零值:B軸立即停止C軸外部寫正值:C軸正方-22寫負值:B軸負方向運行寫零值:B軸立即停止C軸外部寫正值:C軸正方向運行寫負值:C軸負方向運行寫零值:C軸立即停止6100~0~BT:000:目TI:文件0大小(單位:Byte)20000~BT:110:目TI:文件1大小(單位:Byte)20008~…BT:255區(qū)0:目1:文-23BIT30~BIT0文件255大(單位22040~22045:目錄255/文255:當前目錄路:進入選中目D盤根“\U當前路徑下目錄和文件總個所要刪除的加工-23BIT30~BIT0文件255大(單位22040~22045:目錄255/文255:當前目錄路:進入選中目D盤根“\U當前路徑下目錄和文件總個所要刪除的加工文件名所要復制的加工文件名所要粘貼的加工文件名進入編輯狀態(tài)的G代碼總當前編輯窗口起始行編當前編輯窗口結尾行編編輯窗口當前行編號編輯窗口操作命1:光標左2:光標右3:光標上4:光標下5:當前行回車6:向上翻7:向下翻8:刪除當前9:保存編輯后的G代10:退格刪G代碼編輯內容G代碼編輯內容G代碼編輯內容G代碼編輯內容G代碼編輯內容G代碼編輯內容-24鍵值鍵值停止狀態(tài)下有自動模停止狀態(tài)下有手動模停止狀態(tài)下有錄入模停止狀態(tài)下有手輪模停止狀態(tài)下有歸零模歸零模式下有X軸歸零歸零模式下有Y軸歸零歸零模式下有Z歸零模式下有A-24鍵值鍵值停止狀態(tài)下有自動模停止狀態(tài)下有手動模停止狀態(tài)下有錄入模停止狀態(tài)下有手輪模停止狀態(tài)下有歸零模歸零模式下有X軸歸零歸零模式下有Y軸歸零歸零模式下有Z歸零模式下有A軸歸零歸零模式下有所有軸歸零操主軸啟動的情況下轉速自減操主軸啟動的情況下轉速自加操自動模式下有倍率自減操自動模式下有倍率自加操手動模式下有X軸正向手動模式下有X軸負向G代碼編輯內容G代碼編輯內容G代碼編輯內容G代碼編輯內容G代碼編輯內容G代碼編輯內容G代碼編輯內容G代碼編輯內容G代碼編輯內容G代碼編輯內容手動模式下有Y軸正向手動模式下有Y軸負向手動模式下有Z手動模式下有Z手動模式下有A軸正向手動模式下有A軸負向正反清潤跳單暫啟復-25系統報說無報警(系統默認值程序結沒有指定手動模式下有Y軸正向手動模式下有Y軸負向手動模式下有Z手動模式下有Z手動模式下有A軸正向手動模式下有A軸負向正反清潤跳單暫啟復-25系統報說無報警(系統默認值程序結沒有指定運動函沒有G代碼獲取行代碼換刀失刀具無G程序段重復G程序段程序號錯G7x8x復合指令代碼無法正常指定端口號錯程序異常終止錯M01-26不存在指定程序M98格式錯調用運動執(zhí)行失本段不需要補G程序段無效G程序重新運行,M99指令,此報警屬于正常運動報警,-26不存在指定程序M98格式錯調用運動執(zhí)行失本段不需要補G程序段無效G程序重新運行,M99指令,此報警屬于正常運動報警,用來刷新計運動異常報非法字注釋符格式錯誤或者無對稱注釋GG代碼補償號或者值未定義G代碼半徑補償錯圓弧編程錯非法指定平面 之外平M98調用錯誤,可能超過最主軸指定硬件軸號錯M代碼執(zhí)行出主軸指定失運動重復請指定圓弧不存XYZABCDRFTSP-27指令錯指令錯令錯令錯指令錯Q螺距值重復指定錯系統發(fā)生警報異常退人為干預退G無指定G代碼程序號表格存儲-27指令錯指令錯令錯令錯指令錯Q螺距值重復指定錯系統發(fā)生警報異常退人為干預退G無指定G代碼程序號表格存儲宏功能調用錯宏表達式書寫異宏變量地址錯非法變量跳轉語句發(fā)生錯宏循環(huán)語句配對錯宏循環(huán)語句嵌套錯宏循環(huán)語句嵌套調用過多,超出最多沒有定義宏變量獲取地址函宏定義信息輸出,不報宏定義報警輸常量引用錯上一段軌跡i_gcode屬性值下一段軌跡i_gcode屬性值起始補償點圓弧進結束補償點圓弧退在補償過程中上一段軌跡的起點位置和終點位置在補償過程中下一段軌跡的起點位置和終點位置G0203R半徑補償過程中遇到不能切換的G代NURBS節(jié)點過NURBS參數錯-28復合程式記憶程序段數過多溢出復合程式存在表達式錯UWG未定義零-28復合程式記憶程序段數過多溢出復合程式存在表達式錯UWG未定義零緊急停XYZA軸號重定義錯主軸未歸零錯模具夾未鎖緊錯信號未被檢測到重定氣壓不夾料信號無效報油壓報主軸發(fā)生警變頻器發(fā)生警放刀失抓刀失刀庫門檢測錯卡銷檢測錯松刀檢測錯放刀失放刀失放刀失放刀失放刀失放刀失放刀失放刀失放刀失放刀信號未被檢測到重定氣壓不夾料信號無效報油壓報主軸發(fā)生警變頻器發(fā)生警放刀失抓刀失刀庫門檢測錯卡銷檢測錯松刀檢測錯放刀失放刀失放刀失放刀失放刀失放刀失放刀失放刀失放刀失放刀失放刀失對刀儀限位報附加面板工作異預處理外部異常終止程序執(zhí)自定義宏程序重復調用次數加工代碼在運行中檢測編程坐標值超軟限位設定-29CNC參數寄存器用于存儲當前CNC 進行訪問,也可以被宏代碼進行調用訪PLC-30PLC地 對應#100~#199CNC參數寄存器用于存儲當前CNC 進行訪問,也可以被宏代碼進行調用訪PLC-30PLC地 對應#100~#199 保 對應#500~#999 保 綜合參數 軸配置參 管理參 主軸參10000~ 端口配 保寄存~60299PMC60100~60199為一軸參數控制為二軸參數控制地址區(qū)。每個控制軸都能夠選定寄存~60299PMC60100~60199為一軸參數控制為二軸參數控制地址區(qū)。每個控制軸都能夠選定1~6軸中的任意CNC88604CNC5、6軸則可以用來進行PMC編程使用。-31地址(i為0軸號,0表示該軸無用。CNC8860控制器應設置為5,6軸號。9軸特性和脈沖模式設置(修BIT3:軸0旋轉;1BIT2:脈沖方向方向輸出正邏輯方向輸出負邏輯BIT1:脈沖邏正邏輯脈沖負邏輯脈沖BIT0:脈沖方脈沖+脈沖脈沖+方向6軸硬件限位模式設正限位無效正限位有效負限位無效負限位有效-32低電平停止高電平停止00硬件原點信號無效-32低電平停止高電平停止00硬件原點信號無效硬件原點信號有效低電平有效高電平有效01硬件原點信號無效硬件原點信號有效低電平有效高電平有效4軸相關配0不停止 1停止BIT0:軸報警有效0低電平;1(伺服軸歸零使能及方向配伺服Z相零點低電平有伺服Z相零點高電平有ZZ外部零點低電平有效外部零點高電平有效-33外部零點禁止外部零點使能正方向歸零負方向歸零軸硬件正限位輸入端口軸硬件負限位輸入端口0外部零點輸入端口伺服軸報警輸入端口伺服軸復位輸出端口軸起始速-33外部零點禁止外部零點使能正方向歸零負方向歸零軸硬件正限位輸入端口軸硬件負限位輸入端口0外部零點輸入端口伺服軸報警輸入端口伺服軸復位輸出端口軸起始速軸加速軸快移速軸手動速軸歸零加速軸歸零速軸歸零減速速軸歸零零點掃描速0-~軸零點脈沖偏移軸最大約束加速軸最大約束速-~軸正向軟限位脈沖--~軸負向軟限位脈沖軸ROUND設定值(作為旋轉-34地址(i為-2147483648軸實際位置脈沖-2147483648軸邏輯位置脈-34地址(i為-2147483648軸實際位置脈沖-2147483648軸邏輯位置脈沖R軸當前速R軸當前狀BIT0:軸0停止狀 1運行狀RBIT5:負向軟限位報警0無效1有BIT4:正向軟限位報警0無效1有BIT3:負向硬限位報警0無效1有BIT2:正向硬限位報警0無效1有BIT1:伺服報 0無效1有BIT0:軸未歸零報 0無效1有認為1,此時若執(zhí)行了除“歸零”指令外的其它軸運動指令會產生“軸未歸零報警。成功執(zhí)行歸零指令后,BIT0位會自動置為0,表示軸已經成功歸零,BIT0:軸0已歸 1未歸-35軸控制命0x00:清除報警信息-35軸控制命0x00:清除報警信息0x01:立即停止0x02:減速停止0x07:軸歸零操作WW-2147483648PC端高級語言編1.PMC數據類型聲明如typedefcharPC端高級語言編1.PMC數據類型聲明如typedefchartypedefshorttypedefinttypedeftypedefint//16//16//32//32//32//64//布爾型通訊管理函數//***************通訊端口配置//MODBUS傳輸端口數目暫定66個-012345//無效端//TCP//UDP網絡接//***************串口通訊模式 //RTU //ASCII模-36訊管理函數//通訊無//通訊端口號//通訊設//執(zhí)行失1.1.1.COMM_LibVer(示例voidmain(訊管理函數//通訊無//通訊端口號//通訊設//執(zhí)行失1.1.1.COMM_LibVer(示例voidmain({FLOATfVer=//打印庫版本printf("Libraryversion%.2f",}COMM_ParaInit(-37函數void_stdcall功能通訊參數初始化函數輸入無輸出無返回無注意函數FLOAT_stdcall功能通訊庫版本,通過該函數可以獲取當前庫的版本,便于升級維輸入無輸出無返回庫版本號,格式為注意無1.1.3.COMM_UartInit(示例voidmain({//打開串口0,波特率115200,8位數據位位停止位,無1.1.3.COMM_UartInit(示例voidmain({//打開串口0,波特率115200,8位數據位位停止位,無校驗NOPARITY)=={printf(“打開串口成}}COMM_NetConnect(-38函數名INT8U_stdcallCOMM_NetConnect(INT8UNetPort,INT32SINT32UuiConIp,INT16U功能描進行TCP/UDP連接,并用設備號與IP地址進行對應的輸入參 4TCP連接端口,5UDP 網絡通訊對應的設備號,范圍(0~255) 連接的服務端IP地址 連接的服務端通訊端口號(一般通訊固定 輸出參無返回 正函數名INT8U_stdcallCOMM_UartInit(INT8UUartPort,INT32UUartBaud,DataBit,INT8UStopBit,INT8U功能描初始化打開串口,對串口進行通訊配輸入參 串口數據位(5,6,7,8位四種方式) 串口停止位(1,2位兩種方式) 串口校驗位(無校驗,奇校驗,偶校驗三種方式輸出參無返回 正注意事無uiConIp=//UDP1IP:00,端口號:502if(COMM_NetConnectCOMM_UDP_PORT1uiConIp502uiConIp=//UDP1IP:00,端口號:502if(COMM_NetConnectCOMM_UDP_PORT1uiConIp502COMM_NO_ERR){printf(“連接成}}1.1.5.COMM_CloseNetConn(示例voidmain({//UDP1{printf(“連接關閉成}}1)==-39函數INT8U_stdcallCOMM_CloseNetConn(INT8UNetPort,INT32S功能關閉與對應設備的連接,只針對TCP/UDP連接的輸入 4TCP連接端口,5UDP 網絡通訊對應的設備號,范圍(0~輸出無返回 正注意1.1.6.COMM_ClosePort(示例voidmain({ // // // ////TCP1.1.6.COMM_ClosePort(示例voidmain({ // // // ////TCP}-40函數名BOOL_stdcallCOMM_SetTimesOut(INT8Uport,INT16Utimeouts,功能描設置相應端口的通訊超時時間和異常重發(fā)輸入參 通訊端口 輸出參無返回 正注意事無函數名功能描輸入參 0~50,1,2,3為串口4TCP網絡;5為UDP網絡)輸出參無返回 正注意事esOut(_stdcallCOMM_GetTimesOut(INT8Uport,INT16U*timeouts,應端口的通訊超時時間和異常重發(fā)通訊端口輸出esOut(_stdcallCOMM_GetTimesOut(INT8Uport,INT16U*timeouts,應端口的通訊超時時間和異常重發(fā)通訊端口輸出返回正注意無示例voidmain({INT8Urepeat_times;INT16Utimeouts;//設置COMM_UART_PORT0串口超時時間為1000ms,超時最多重發(fā)4//獲取COMM_UART_PORT0串口設置的超時時間和最多重發(fā)COMM_GetTimesOut(COMM_UART_PORT0,&timeouts,//打印獲取的超時時間和最多重發(fā)printf(“timeouts=%d,repeat_times=%d\n”,timeouts,}1.1.9.COMM_ByteToAscii(-41函數void_stdcallCOMM_ByteToAscii(INT8Udata,INT8U*ch,INT16U功能字節(jié)數據轉ASCII輸入 要轉換的數輸出 存放轉換后的ASCII值的數 數組數據的位置(數據訪問后會指向下一數據位置返回無注意無示例voidmain({INT8UINT8Uch[5];offset=COMM_ByteToAscii(0x12,ch,COMM_ByteToAscii(0x34, //將0x12示例voidmain({INT8UINT8Uch[5];offset=COMM_ByteToAscii(0x12,ch,COMM_ByteToAscii(0x34, //將0x12轉換為字符’1’、’2’//添加結ch[4]=//打印結果:ch:1234,offset:printf(“ch:%s,offset:%d”,ch,offset=COMM_AsciiToByte(&data,ch,&offset);COMM_AsciiToByte(&data,ch,&offset);}COMM_Send(-42函數名INT16U_stdcallCOMM_Send(INT8UPort,INT8U*sbuff,INT16U功能描向指定串口發(fā)送數據函函數名void_stdcallCOMM_AsciiToByte(INT8U*data,INT8U*ch,功能描ASCII字符轉字節(jié)數輸入參 存放轉換ASCII值為數據的 數組數據的位置(數據訪問后會指向下一數據位置輸出參 轉換后的數返回無注意事無發(fā)送數據長發(fā)送的數據長注意該函數發(fā)送的數據直接通過相應串COMM_Recv發(fā)送數據長發(fā)送的數據長注意該函數發(fā)送的數據直接通過相應串COMM_Recv(1.2.//加工管理操作//無效命//復位命//寫入不連續(xù)寄存器地址和相應長度//擴展型讀寫不連續(xù)寄存器地址和相#define#defineWORK_READDATAEXT#define//讀多個不連續(xù)寄存器//寫多個不連續(xù)寄存器//錯誤類型//操作無//無效的//讀無效的數//命令長度錯//讀命令#define-43函數INT16U_stdcallCOMM_Recv(INT8UPort,INT8U*rbuff,INT16U功能串口讀數據函輸入 通訊端口 指定讀取數據長輸出 讀取數據存儲返回返回實際接收到的數據長注意該函數接收的數據直接來自相應串#define//寫命令//數據長度超出最大緩存區(qū)//數據長度錯//讀數據//寫數據#define//寫命令//數據長度超出最大緩存區(qū)//數據長度錯//讀數據//寫數據//空地址//設備錯//通訊超時錯WORK_SelectComm(-44函數名INT8U_stdcallWORK_GetCommInfo(INT8U*port,INT32SINT8U*mode,BOOL功能描針對加工部分的數據訪問,獲取當前通訊連接狀輸入參無輸出參 通訊端口 從機設備 針對串口通訊選擇RTUASCII 允許通訊返回 正函數名INT8U_stdcallWORK_SelectComm(INT8Uport,INT32SiDevNum,mode,BOOL功能描針對加工部分的數據訪問,選擇設置相應的通訊連輸入參 通訊端口 從機設備 針對串口通訊選擇RTUASCII 允許通訊輸出參無返回 正注意事無INT8Umode;BOOL//選擇COMM_UART_PORT0串口,站號為1,RTU通訊模式,通訊使能WORK_SelectComm(COMM_UART_PORT0,1,//INT8Umode;BOOL//選擇COMM_UART_PORT0串口,站號為1,RTU通訊模式,通訊使能WORK_SelectComm(COMM_UART_PORT0,1,//獲取加工類通訊printf(“port=%d,iDevNum=%d,mode=%d,bEnable=%d\n”,port,iDevNum,mode,}WORK_ReadInBit(WORK_ReadBit(-45函數INT8U_stdcallWORK_ReadBit(INT16UnAddr,INT8U*pBuff,功能讀一個或多個連續(xù)位寄存器地址的狀輸入 位寄存器首地 要訪問的位個函數INT8U_stdcallWORK_ReadInBit(INT16UnAddr,INT8U*pBuff,功能讀一個或多個連續(xù)輸入位寄存器地址的狀輸入 位寄存器首地 要訪問的位個輸出 存放讀出的位狀態(tài)返回 正注意無1.2.5.WORK_WriteBit(示例voidmain({intINT8Umemset(rSta,0,//讀出1.2.5.WORK_WriteBit(示例voidmain({intINT8Umemset(rSta,0,//讀出位地址為100開始的連10個只讀輸入點的if(WORK_ReadInBit(0,&rSta,10)!={}for(i=0;i<10;{printf(“%d, //打印輸入狀}-46函數名INT8U_stdcallWORK_WriteBit(INT16UnAddr,INT8U*pBuff,功能描寫一個或多個連續(xù)位寄存器地址的狀輸入參 位寄存器首地 存放要寫入的位狀態(tài) 要訪問的位個輸出參無返回 正注意事無輸出參 存放讀出的位狀態(tài)返回 正注意事無)==0)?1:{)==0)?1:{}memset(rSta,0,if(WORK_ReadBit(100,&rSta,10)!={}for(i=0;i<10;{printf(“%d,”,}//打印輸出}1.2.6.WORK_ReadReg(-47函數INT8U_stdcallWORK_ReadReg(INT16UnAddr,INT8U*pBuff,功能讀取一個或多個連續(xù)字寄存地址的數輸入無輸出無1.2.7.WORK_WriteReg(示例voidmain({inti;INT8Uerr;pos=//選擇串口,站1.2.7.WORK_WriteReg(示例voidmain({inti;INT8Uerr;pos=//選擇串口,站號為1,RTU通訊模式,通訊使能WORK_SelectComm(COMM_UART_PORT0,1,COMM_MODE_RTU,//例如X軸反饋位置的寄存器起始地址為5060,數據類型為32位有符號整errWORK_ReadReg(5060,(INT8U*)&pos, //讀X軸反饋位if(err!={}pos=1000;errWORK_WriteReg(5060,INT8U*)&pos4);//X-48函數名INT8U_stdcallWORK_WriteReg(INT16UnAddr,INT8U*pBuff,功能描寫入一個或多個連續(xù)字寄存地址的數輸入參 字寄存器首地 存放要寫入寄存器數據的 要寫入的寄存器數據字節(jié)輸出參無返回 正注意事無返回 正注意事無gisterpos=errWORK_ReadReg(5060,(INT8U*)&pos, //再次讀X軸反饋位if(err!={gisterpos=errWORK_ReadReg(5060,(INT8U*)&pos, //再次讀X軸反饋位if(err!={}printf(“pos2=%d\n”,}WORK_ReadDiscReg(-49函數INT8U_stdcallWORK_WriteDiscReg(constINT16U*pRegBuff,功能寫入一個或多個不連續(xù)字寄存地址的數輸入 存放不連續(xù)寄存地址及相應讀取數據長度的 pRegBuff數組內容 存放要寫入的不連續(xù)寄存器數據的輸出無函數INT8U_stdcallWORK_ReadDiscReg(constINT16U*pRegBuff,功能讀取一個或多個不連續(xù)字寄存地址的輸入 存放不連續(xù)寄存地址及相應讀取數據長度的 pRegBuff數組內容輸出 存放讀取的不連續(xù)寄存器數據的返回 正注意無示例voidmain({//選示例voidmain({//選擇COMM_UART_PORT0串口,站號為1,RTU通訊模式,通訊使能WORK_SelectComm(COMM_UART_PORT0,1,COMM_MODE_RTU,//例如X,Z軸反饋位置寄存器起始地址分別為5060,5064其中X軸占用兩個字地址空間,Z軸占用5064,5065兩個字地址空nBuffNum=err=WORK_ReadDiscReg(pRegBuff,nBuffNum,pData);//讀X,Z軸反饋位if(err!={}*(INT32S*)pData=*(INT32S*)(pData+4)=-50返回 正注意事無10002000gister}*(INT32S*)pData=*(INT32S*)(pData+4)=10002000gister}*(INT32S*)pData=*(INT32S*)(pData+4)=err=WORK_ReadDiscReg(pRegBuff,nBuffNum,pData);//再次讀X,Z軸反饋位if(err!={}}1.3.//訪問命令//無效命//讀參數所有//讀參數//錯誤類型//操作無//無效的//讀無效的數//讀列表//讀參數信息//讀數據//寫數據-51//讀位置//寫位置//空地址//設備//通訊超時//讀位置//寫位置//空地址//設備//通訊超時//加載參數文件//保存參數文件//參數信息字節(jié)//參數屬性(0<<7)//只讀寄存(1<<7)//讀寫寄存//一般客戶權限寄//超級用戶權限寄//數據類型定義,類型值位用來表示變量字4-52typedefstruct{INT8UPopedom;INT8UINT16U//參數操作//參數數據//PLCtypedefstruct{INT8UPopedom;INT8UINT16U//參數操作//參數數據//PLC //存放參//參數有效值界限:[0]最小值;[1]最大typedefstruct{//參數數//參數類型名//參數鏈表首PARA_TAB*pTitle;PARA_TAB*pParam;1.3.1.PARA_SelectComm(-53函數INT8U_stdcallPARA_SelectComm(INT8Uport,INT32SiDevNum,mode,BOOL功能針對參數部分的數據訪問,選擇設置相應的通訊連輸入 通訊端口 從機設備 針對串口通訊選擇RTUASCII 允許通訊輸出無返回 正注意無PARA_GetCommInfo(-54函數名INT8U_stdcallPARA_GetParaInfo(INT16U*pParaVer,INT16UINT32U功能描獲取遠程設備參數PARA_GetCommInfo(-54函數名INT8U_stdcallPARA_GetParaInfo(INT16U*pParaVer,INT16UINT32U功能描獲取遠程設備參數的版本,校驗值及總大小輸入參無輸出參 返回 正注意事無函數名功能描計算指定數目參數列表的校驗輸入參 PARA_TAB類型的數組首 參數列表的個輸出參無返回計算的校驗注意事無函數名INT8U_stdcallPARA_GetCommInfo(INT8U*port,INT32SINT8U*mode,BOOL功能描針對參數部分的數據訪問,獲取當前通訊連接狀輸入參無輸出參 通訊端口 從機設備 針對串口通訊選擇RTUASCII 允許通訊返回 正注意事無aTab(1.3.7.PARA_Destroy(示例voidmian({int-55函數void_stdcallPARA_Destroy(PARA_SORT功能獲取下位機aTab(1.3.7.PARA_Destroy(示例voidmian({int-55函數void_stdcallPARA_Destroy(PARA_SORT功能獲取下位機參數或讀本地匹配的參數住處并創(chuàng)建參數列輸入 PARA_SORT類型輸出無返回無注意無函數PARA_SORT*_stdcallPARA_TabToSort(PARA_TAB*pTab,intint功能將參數列表內容進行分類,轉換為PARA_SORT類型數輸入 PARA_TAB類型的數組首 參數列表數輸出 存放參數類型數目的返回非空:PARA_TAB類型指 NULL:獲取失注意無 ion,INT8U設備的參數列表內輸入無輸出 返回非空:PARA_TAB類型指 NULL:獲取失注意無nVerify1,nVerify2; nVerify1,nVerify2; iTabNum=//先從本地文件中讀if(pParaTab==NULL){//讀本地文件失敗后就直接從遠程設備pParaTab=PARA_ReadParaTab(&iTabNum,&nVersion1,}{//獲取參數列表校nVerify1=PARA_GetParaVerify(pParaTab,printf(“nVersion1=%d,nVerify1=%d\n”,nVersion1,//獲取遠程設備參數的版本,校驗值及總大小if(err==PARA_NO_ERR){nVersion2,nVerify2,uiParaSize);}-56容進行分類轉RA_TabToSort(pParaTab,iTabNum,//最后釋放創(chuàng)建}示例voidmain({容進行分類轉RA_TabToSort(pParaTab,iTabNum,//最后釋放創(chuàng)建}示例voidmain({Tab.Popedom=RW_USER;Tab.PlcAddr=-57函數功能需通過PARA_ReadValue函數讀取下位機的相應參數值。輸入 PARA_TAB類型指針,存放該參數所有信息 輸出無返回 正注意無函數INT8U_stdcallPARA_ReadValue(PARA_TAB功能從下位機讀取該參數的值輸入無輸出 返回 正注意無strcpy(Tab.pText,“001,X軸指令倍乘比<●>Tab.fLmtVal[0]=1.0;data={strcpy(Tab.pText,“001,X軸指令倍乘比<●>Tab.fLmtVal[0]=1.0;data={}if(PARA_ReadValue(&Tab)!={}printf(“Readvalue:%u,data=%u\n”,*(INT16U*)(Tab.pData),}示例voidmain({-58函數名功能描從下位機讀取連續(xù)多個參數的值輸入參 PARA_TAB類型指針,多個參數指針首地址 輸出參 個參數成員值將得到更新。返回 正注意事無Tab.PlcAddr=8000+i;Tab.fLmtVal[0]=1.0;//因為數據類型都是無Tab.PlcAddr=8000+i;Tab.fLmtVal[0]=1.0;//因為數據類型都是無符16位整型,所以直接i}if(PARA_ReadMultValue(Tab,8)!={}for(i=0;i<8;{printf(“<%d>Readvalue:%u\n”,i,}}1.4.//訪問命令//無效//讀目//創(chuàng)建//刪除//刪除//文件重//打開并讀//打開并寫//關閉-59//錯誤類型//錯誤類型//文件操作無//無效的//文件未//文件未//路徑錯//讀目錄列表//創(chuàng)建目錄//刪除目錄//刪除文件//打開文件//關閉文件//讀數據//寫數據//讀位置//寫位置//讀無效的//路徑名//空地址//設備錯//通訊超時//只//只#define#define//目錄內包含最大的文件目//最大文件/目錄路徑字節(jié)#define//磁//目//文-602:文檔//文件屬性(0:磁 1:目//文件名(8+3格式//文件大小/磁盤總2:文檔//文件屬性(0:磁 1:目//文件名(8+3格式//文件大小/磁盤總//磁盤剩余字節(jié)}FS_DIRENT;//單元大小24typedefstruct{//目錄列表 pDirent[MAX_LIST];//目錄列表信typedefstruct{filepos;//文件訪問位//文件大//文件讀寫操//文件錯誤信1.4.1.FS_SelectComm(-61函數INT8U_stdcallFS_SelectComm(INT8Uport,INT32SiDevNum,mode,BOOL功能針對文件部分的數據訪問,選擇設置相應的通訊連輸入 通訊端口 從機設備 針對串口通訊選擇RTUASCII 允許通訊1.4.2.FS_GetCommInfo(1.4.3.FS_FReadDir(示例voidmain({FS_DIR//空路徑表示讀根目錄信息(磁盤信息err1.4.2.FS_GetCommInfo(1.4.3.FS_FReadDir(示例voidmain({FS_DIR//空路徑表示讀根目錄信息(磁盤信息err=FS_FReadDir(“”,if(err!=-62函數名INT8U_stdcallFS_FReadDir(constINT8S*pDirName,FS_DIR功能描讀遠程文件系統的目錄信息輸入參 輸出參 存放目錄信息的結構體指返回 正注意事無函數名INT8U_stdcallFS_GetCommInfo(INT8U*port,INT32S*iDevNum,*mode,BOOL功能描針對文件部分的數據訪問,獲取當前通訊連接狀輸入參無輸出參 通訊端口 從機設備 針對串口通訊選擇RTUASCII 允許通訊返回 正注意事無輸出參無返回 正注意事無錄失敗“C:\\”pDir);//Cif(err!={printf(“讀C盤根目錄信息失敗}err=FS_FReadDir(“D:\\ADT\\”,錄失敗“C:\\”pDir);//Cif(err!={printf(“讀C盤根目錄信息失敗}err=FS_FReadDir(“D:\\ADT\\”, //DADTif(err!={printf(“讀目錄失敗}}FS_FOpen(FS_FRead(-63函數INT8U_stdcallFS_FRead(FS_FILE*pFile,void*pData,INT32U功能讀遠程文件內輸入 文件結構體指 讀取文件內容的字節(jié)長輸出 存放讀取的文件內函數FS_FILE*_stdcallFS_FOpen(constINT8S*pFileName,constchar功能打開遠程文輸入 要打開的遠程文件路徑,所有文件名都為絕對路 文件打開模式('r':讀操 'w':寫操作輸出無返回 文件結構體指針,執(zhí)行成功后返回非0注意訪問遠程文件時,同時只能打開一個遠程文件。該函數與FS_FClose()函FS_FWrite(FS_FClose(FS_Remove(示例voidmain({-64函數名INT8U_stdcallFS_Remove(constINT8S功能描刪除文輸入參FS_FWrite(FS_FClose(FS_Remove(示例voidmain({-64函數名INT8U_stdcallFS_Remove(constINT8S功能描刪除文輸入參 刪除文件的路輸出參無返回 正注意事無函數名INT8U_stdcallFS_FClose(FS_FILE功能描關閉遠程文件內容,與FS_FOpen對應使用輸入參 文件結構體指針輸出參無返回 正注意事無函數名INT8U_stdcallFS_FWrite(FS_FILE*pFile,constvoid*pData,INT32U功能描寫遠程文件內輸入參 文件結構體指針 存放寫入的文件內 寫文件內容的字節(jié)長輸出參無返回 正注意事無返回 正注意事無D:\\ADT\\TEST.TXT”, //以只讀方式打開遠程if(pFile==D:\\ADT\\TEST.TXT”, //以只讀方式打開遠程if(pFile=={}printf(“Filesize=%d\n”,pFile-//打印打開文件err=FS_FRead(pFile,Buff,100);if(err!={}//從遠程文件讀100字節(jié)數//關閉打開的pFile=FS_FOpen(“D:\\ADT\\ADT.TXT”,“w”); if(pFile==NULL){}if(err!={printf(“寫遠程文件失敗//向遠程文件寫100字節(jié)數//關閉打開的-65}}1.4.9.FS_FSeek(示例voidmain({//假設TEST.TXT文件內容是:0123456789。}}1.4.9.FS_FSeek(示例voidmain({//假設TEST.TXT文件內容是:0123456789。個字節(jié)數//用只讀方式打開一個遠程if(pFile==NULL){-66函數名INT8U_stdcallFS_FTell(FS_FILE*pFile,INT32S功能描獲取當前文件操作位置輸入參 文件結構體指針輸出參 存放當前文件操作的位置,相對于文件開始位返回 正注意事無函數名INT8U_stdcallFS_FSeek(FS_FILE*pFile,INT32S功能描定位

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論