BeckHoff <---> Keyence (LJ-X8000) 2D相機 Profinet 通訊

                               

目錄

                        ?編輯    

                        

一、 設備介紹

1、產品特點

2、控制器選擇

3、應用領域

二、PLC通訊接口配置

1、PLC添加GSDML文件

2、定義輸入3、變量實例化

3、定義輸出變量實例化

三、設備通訊接口數據類型定義

1、定義全局結構體數據

2、定義 INput  Decode結構體數據

四、通訊功能塊變量聲明 

  

五、通訊功能塊程序 

六、通訊功能塊程序分析

6.1 代碼功能分析

6.2整體架構解析

6.3 詳細功能說明

初始化與全局變量

工作模式與命令請求處理

狀態機主邏輯(CASE 結構)

錯誤處理與診斷

6.4 關鍵數據結構與接口

6.5 總結

七、通訊功能塊功能描述及可能的改進空間

7.1 功能塊描述

7.2 改進空間

八、附錄

1、recive_data 子程序

2、send_data 子程序


                        

一、 設備介紹

以下是基恩士 LJ-X8000 系列中的 2D 產品介紹:

1、產品特點

  • 高精度測量:采用 3200points/profile 超高精度測量,能夠極其精確地繪制目標物形狀,實現精確的尺寸測量和外觀檢測,測量精度可達以往產品的 4 倍1。
  • 高速采樣:2D 模式下,采樣周期最高可達 1kHz(1ms),可快速獲取測量數據,滿足在線檢測等高速測量需求3。
  • 易于設定:只需三步即可完成測量、檢測所需的設定,操作輕松簡單,兼顧了高精度和易操作性2。
  • 豐富的工具與功能:每個設定有 100 個工具,其中 20 個為錯位修正用,可通過識別工件的錯位及傾斜,并自動修正,實現不受定位影響的在線全檢3。
  • 多種數據接口:具備 RS-232C、PLC 鏈接、USB、EtherNet/IP?、PROFINET、EtherCAT? 等豐富的接口,可方便地與其他設備進行連接和數據傳輸,實現系統集成和自動化控制3。
  • 穩定可靠:采用圓柱形透鏡防止反射光散射,配備大孔徑接收器透鏡增加接收光強度,新開發的 CMOS 在不同反射率的目標上也能提供更好的成像能力,確保測量的穩定性和可靠性2。

2、控制器選擇

  • LJ-X8000:適用于追求簡單快速地實現在線檢測場合,可連接最多 2 臺感測頭,支持 LJ-X8000 系列感測頭、LJ-V7000 系列感測頭。
  • LJ-X8000E:提供用戶高自由度編程的環境以及自行開發的選擇,是追求以專有程序實現難度高、應用復雜檢測的理想選擇。

3、應用領域

  • 電子制造:可對精密電子元件進行細微檢測,如芯片封裝、印刷電路板(PCB)的尺寸測量、焊點檢測、元器件高度檢測等,保證電子元件的質量和性能。
  • 汽車制造:用于汽車零部件的尺寸控制、形狀檢測、裝配精度檢測等,如汽車發動機缸體、缸蓋、曲軸、輪轂等零部件的測量和檢測,確保零部件的質量和裝配精度。
  • 機械加工:用于機械加工零件的尺寸精度測量、形位公差檢測、表面粗糙度測量等,幫助機械加工企業提高產品質量和加工精度。
  • 其他領域:還可應用于建筑材料的均勻性檢查、電纜的凹凸檢測、端子的間距和高度差檢測等多個領域

二、PLC通訊接口配置

1、PLC添加GSDML文件

2、定義2D相機的全局變量

2、定義輸入3、變量實例化

3、定義輸出變量實例化

三、設備通訊接口數據類型定義

1、定義全局結構體數據

2、定義 INput  Decode結構體數據

TYPE ST_Laser_Profiler_Input_Decode : //Result_Data_128Byte + 32 x 5 Byte = 288 Bytes
STRUCT
ErrorCode     :INT;  // Status INT12
Reserved14    :INT;  // Status INT14
Total_Count   :DINT; // Status DINT16
CommandResult :DINT; // Status DINT20
CommandData  :ARRAY [1..29] OF DINT; // Vision Check Command Datas DINT 20 - DINT136 (相機命令應答自己設置為 116 ) == Result_Data_128Byte
arrResult_Data :ARRAY [1..8] OF DINT; // Vision Check Result Datas  DINT 140 - DINT168  == Result_Data_32Byte1 END_STRUCT
END_TYPE
(*
DINT140 = Result Data1
......
......
......
......
DINT168 = Result Data8
*)

3、定義OUTPUT  Decode結構體數據

TYPE ST_Laser_Profiler_Output_Decode : //Parameter_128Byte
STRUCT
ExecCondNo          :DINT;  // Control DINT12
CommandNumber       :DINT;  // Control DINT16
CmdParameter        :ARRAY [1..30] OF DINT; // Control Parameter DINT20 - DINT 136
END_STRUCT
END_TYPE
(*
DINT20 = CmdParameter1
......
......
......
......
DINT136 = CmdParameter30*)

四、通訊功能塊變量聲明 

  

FUNCTION_BLOCK FB_TYP_162_Laser_Profiler_LJ_X_V1_0_1(*---------------------------------------------*)
(*IN variables*)
(*---------------------------------------------*)
VAR_INPUTiIn_idxElement				: INT;							(* !!!UNIQUE!!! Element identification*)ist_HWIn     				: ST_Laser_Profiler_Input;		    (* Profinet-interface: Inputs *)ibExt_CMD                   :BOOL;ibImage_StorageEnable       :BOOL;	// 照片存儲使能	istPart_ID                  : STRING(30);                   (* Part Barcode *)  // Carmera Software Need Config Command Parmeters Length		
END_VAR(*---------------------------------------------*)
(*IN/OUT variables*)
(*---------------------------------------------*)
VAR_IN_OUTstINOUT_SYS_CELL					:ST_SYS_CELL;	
END_VAR(*---------------------------------------------*)
(*OUT variables*)
(*---------------------------------------------*)
VAR_OUTPUTost_HWOut 					: ST_Laser_Profiler_Output;		(* Profinet-interface: Outputs *)oCurrent_Prog_No            : INT;	oCurrent_Exe_No             : INT;	oCmd_Idle                   : BOOL;		
END_VAR(*---------------------------------------------*)
(*Local variables*)
(*---------------------------------------------*)
VARstLaser_Profiler_Data_Decode	    :ST_Laser_Profiler_Decode; 				(* Laser Profiler Interface Datas *)Dly_Ton			            : TON;Dly_Ton1			        : TON;	Dly_Ton2			        : TON;		Execution_Timeout           : TON;	Step                        :INT;Checked_Count               :DINT;	Start_Condition             :BOOL;Cmd_No                      :INT;	// 24 =Switch Program Numer,25=Read Prog No,41=Entry Execute No,42=Read Current Execute No,60=Entry String,61=Read String     Cmd_Type                    :BYTE;  // (*0= Switch Program Number,1=Switch Excution Condition Number,2=Trigger Check *) Count_No                    :INT;index                       :INT:=0;index1                      :INT:=0;strTemp                     :T_MAXSTRING;	Data_Barcode                :T_MAXSTRING;	arrData                     :ARRAY [0..255]OF BYTE;UnpackDWord                 :MEM.UnpackDWord;
END_VAR(*---------------------------------------------*)
(*Local temp variables*)
(*---------------------------------------------*)
VARstTemp_CELL					: ST_SYS_CELL;					(* Cell structure for element*)stTemp_ELEMENT				: ST_SYS_ELEMENTS;				(* Data structure of element *)tTemp_T_Ticker			    :TIME;(* actual CPU-Tick *)bVar_REQ_HP 				: BOOL;  // Execute FunctionbVar_REQ_WP_1				: BOOL;  // Load Job NumberbVar_REQ_WP					: BOOL;  // Cision Check StartwTemp_Diagnose				: WORD;(*Error MessagesBIT.0	Robot: Collective ErrorBIT.1	Robot: Task number invalidBIT.2	Robot: Missing release for task start BIT.3	Robot: Emergengy Stop from robot					BIT.4	Robot: Error - Bus StateBIT.5	Robot: Error - Program not startedBIT.6	Robot: Error - Stop by programBIT.7	Robot: Error - Stopped by userBIT.8	Robot: ReserveBIT.9	Robot: Teach Mode activeBIT.10	Robot: resBIT.11	Robot: resBIT.12	Robot: No Connection to Robot TCP_IP-ServerBIT.13	Robot: No answer from robot for Read errorBIT.14	Robot: User Error by RobotBIT.15	Robot: Reserve*)
END_VARVAR   idxRotaryCylinder			    :UINT := 0;					(* Element Connection to 'Cylinder V021 ' - set to "0" if not used *)idxLaser_Profiler			    :UINT := 0;					(* Element Connection to 'Camera 3D lJ-X8000 ' - set to "0" if not used *)idxVision_AxisX 			    :UINT := 0;					(* Element Connection to 'Axis X ' - set to "0" if not used *)idxVision_AxisY 			    :UINT := 0;					(* Element Connection to 'Axis Y ' - set to "0" if not used *)		 Step_Fun_Master                : UINT;	 MeasureDatas_3D 	           : ARRAY [1..9] OF ST_Laser_Profiler_Result;	bMeasterExecuteEnd             : BOOL;  // 執行完成bMeasureExecuteEnd             : BOOL;  // 執行完成	 CylPos_Define 	               : ARRAY [1..9] OF USINT;	Index_AxisPos 	               : USINT;	 MeasureNo  	               : USINT;	  // 測量次數	Step_Fun_Measure              : UINT;	  
END_VAR

五、通訊功能塊程序 

(* Initialisation of FB internal structures - for reducing length of expressions *)
acstartCopyData();(*=============&#

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/909623.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/909623.shtml
英文地址,請注明出處:http://en.pswp.cn/news/909623.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

electron在單例中實現雙擊打開文件,并重復打開其他文件

單實例的思路 首次通過雙擊文件打開應用 將filePath傳給render 使用中的應用,再次雙擊打開文件 第一個實例創建時,同時創建一個通信服務器net.createServer()第二個實例創建時,連接第一個服務器net.createConnection()將再次打開的filePath傳…

一、基礎架構層:高性能引擎基石

1. ECS架構工業級實現 // EnTT實戰示例:導彈系統組件定義 struct Position { vec3 value; }; struct Velocity { vec3 value; }; struct ExplodeWhen { float distance; };entt::registry registry;// 實體創建與組件綁定 auto missile registry.create(); regist…

rockylinuxapache和Linux服務配置

目錄 apache nginx 反向代理配置[rootk8s2 ~]# [rootk8s2 ~]# cat /etc/nginx/conf.d/webserver.confserver { listen 80; server_name www.sxy1.com; location / { root /var/www/html; index index.html; } location /py/{ …

ai 幻覺

ai幻覺: 感知人類觀察者不存在或無法感知的模式或對象,從而產生無意義或完全不準確的輸出 有時 AI 算法會生成并非基于訓練數據的輸出結果,繼而被轉換器錯誤解碼或不遵循任何可識別的模式。換句話說,它會在給出響應時“產生幻覺” 致因:訓練…

freeRTOS移植實驗

提示:文章 文章目錄 前言一、背景第6章節 二、2.12.2 三、3.1 總結 前言 前期疑問: 本文目標: 一、背景 在家里先使用野火網盤資料里的freeRTOS源碼,網盤里是v9.0.0。 J:\野火\STM32F103ZET6_霸道開發板\A盤(資料盤…

食品加工溫控場景:PROFIBUS轉MODBUS的溫控表連接規范

在現代的工業自動化領域里,實現不同通信協議設備間無縫對接的技術日益受到重視。這不僅關乎系統整合性和效率的提升,更是實現復雜工業過程自動化的必經之路。特別是在眾多的通信協議中,MODBUS和PROFIBUS這兩種廣泛使用的協議因其各自的優勢而…

【動態規劃】回文串(二)

📝前言說明: 本專欄主要記錄本人的動態規劃算法學習以及LeetCode刷題記錄,按專題劃分每題主要記錄:(1)本人解法 本人屎山代碼;(2)優質解法 優質代碼;&…

Ubuntu22.04.5 桌面版然后安裝 VMware 17

安裝 VMware 需要 GCC 12版本 標題通過 PPA 安裝 這是最簡單的方法,適用于大多數 Ubuntu 版本。 步驟 1:添加 PPA 倉庫 sudo apt update sudo apt install software-properties-common sudo add-apt-repository ppa:ubuntu-toolchain-r/test sudo apt…

深入解析 MySQL 架構:從基礎到高級

MySQL 是一款廣泛使用的開源關系型數據庫管理系統,以其高性能、可靠性和靈活性而聞名。無論是小型創業公司還是大型企業,MySQL 都是許多應用程序的首選數據庫解決方案。本文將深入探討 MySQL 的架構設計,幫助讀者更好地理解其內部工作機制&am…

BACnet協議移植適配實現BACnet/IP和BACnet MSTP相關功能

1、從GitHub或者其他網站下載最新的協議棧源碼 源碼結構如圖所示: 其中src是協議棧源碼,可直接拿來使用,apps里面是一些功能的應用示例,有BACnet IP,BACnet MSTP,BACnet Router等功能。 2、協議棧移植完成…

Ubuntu 22.04.1 LTS 離線安裝Docker(最快方法,僅需一個壓縮文件和兩個腳本)

作者親測:親測有效無bug。 利用ubuntu22.04下載完docker-27.4.1.tgz,然后按照下面方法安裝。選擇sudo方法。 tips:這個ubuntu22.04是遷移后的服務器的版本,不是遷移前的版本。 下載 下載地址 : https://download.docker.com/linux/static/stable/x86_…

Tkinter --按鈕點擊事件應用場景

第二章 事件處理 目錄 第二章 事件處理 四、事件處理 4.1 按鈕點擊事件 4.1.1信息展示類場景 1. 靜態文本說明 ?編輯 2. 動態狀態顯示 4.1.2.界面美化與裝飾 1. 圖像 / 圖標展示 ?編輯 2. 分隔與布局輔助 4.1.3 交互反饋與提示 1. 操作結果提示 2. 幫助與說明文本…

計算機網絡學習筆記:TCP流控、擁塞控制

文章目錄 前言一、TCP流量控制1.1、案例:三次流量控制1.2、持續計時器 二、TCP擁塞控制2.1、擁塞控制的指標2.2、慢開始算法和擁塞避免算法2.3、快重傳算法和快恢復算法2.4、練習 三、TCP擁塞控制與網際層擁塞控制總結 前言 TCP協議中的流量和擁塞,是兩個…

【Linux】Tomcat搭建

前言 Tomcat Tomcat 服務器是一個免費的開放源代碼的Web 應用服務器,屬于輕量級應用服務器,在中小型系統和并發訪問用戶不是很多的場合下被普遍使用,是開發和調試JSP 程序的首選。 JSP JSP是一種跨平臺的動態網頁技術標準,可以…

Ajax 核心知識點全面總結

文章目錄 Ajax 核心知識點全面總結一、Ajax 基礎概念1、定義2、核心特點 二、Ajax 工作原理與核心組件1、工作流程2、XMLHttpRequest(XHR)對象 三、Ajax 請求方法與參數1、常見請求方法2、請求參數處理 四、Ajax 異步與錯誤處理1、異步處理2、錯誤處理 五…

SpinFlowSim:用于癌癥組織學信息驅動的擴散MRI微血管映射的血流模擬框架|文獻速遞-深度學習醫療AI最新文獻

Title 題目 SpinFlowSim: A blood flow simulation framework for histology-informeddiffusion MRI microvasculature mapping in cancer SpinFlowSim:用于癌癥組織學信息驅動的擴散MRI微血管映射的血流模擬框架 01 文獻速遞介紹 在擴散磁共振成像&#xff08…

量化面試綠皮書:21. 拋硬幣游戲

文中內容僅限技術學習與代碼實踐參考,市場存在不確定性,技術分析需謹慎驗證,不構成任何投資建議。 21. 拋硬幣游戲 兩個賭徒正在玩一個拋硬幣游戲。 賭徒A有(n1)枚均勻硬幣,賭徒B有n枚均勻硬幣。 Q: 如果兩人同時拋擲所有硬幣&a…

OpenLayers 框架體系

注:當前使用的是 ol 9.2.4 版本,天地圖使用的key請到天地圖官網申請,并替換為自己的key OpenLayers框架組織結構龐大,只通過官網API進行查看,對框架結構缺少一個整體、全面的看法。借助樹形結構圖或思維導圖&#xff0…

緩存系統-基本概述

目錄 一、系統概述 二、名詞解釋 三、淘汰策略 1、LRU 2、LFU 3、FIFO 4、TTL 5、Random 四、讀寫模式 1、Cache Aside(旁路緩存) 2、Write Through(直寫) 3、Write Back(回寫) 五、問題方案 …

基于GNU Radio Companion搭建的BPSK收發通信實驗

目錄 一、實驗目的和要求 二、實驗內容 1.Lab5 仿真設計一個BPSK的數字收發射系統 Lab6 實際使用RTLSDR解調BPSK信號 一、實驗目的和要求 1.了解軟FM的工作方式和原理,數字通信的碼間串擾及星座圖 2.掌握并正確使用RTL-SDL硬件和Gnuradio軟件 3.正確使用Gnraduo軟件,建…