目录

                        ​编辑    

                        

一、 设备介绍

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软件,建…