当前位置: 首页 > news >正文

2.5 C#视觉程序开发实例1----IO_Manager实现切换程序

2.5 C#视觉程序开发实例1----IO_Manager实现切换程序

1 IO_Manager中输入实现

1.0 IO_Manager中输入部分引脚定义
// 设定index 目的是为了今后可以配置这些参数、
// 输入引脚定义
private int index_trig0 = 0; // trig index
private int index_cst = 7; //cst index
private int[] index_ProNO = new int[8];// 程序号indexfor (int i = 0; i < 8; i++)index_ProNO[i] = 8 + i;
1.1 IO_Manager中获取Trig0 信号
public  bool get_Trig0()
{return Inputs[index_trig0];
}
1.2 IO_Manager中获取Pro_NO
public ushort get_ProgramNO()
{ushort Pro_no = 0;if (Inputs[index_ProNO[0]]) Pro_no += 1;if (Inputs[index_ProNO[1]]) Pro_no += 2;if (Inputs[index_ProNO[2]]) Pro_no += 4;if (Inputs[index_ProNO[3]]) Pro_no += 8;if (Inputs[index_ProNO[4]]) Pro_no += 16;if (Inputs[index_ProNO[5]]) Pro_no += 32;if (Inputs[index_ProNO[5]]) Pro_no += 64;if (Inputs[index_ProNO[6]]) Pro_no += 128;return Pro_no;
}
1.3 IO_Manager中获取Pro_CST程序切换信号
public bool get_CST()
{return Inputs[index_cst];
}

2 IO_Manager中输出实现

2.0 IO_Manager中输出部分引脚定义
// 输出引脚定义private int index_online = 0;// 联机信号private int index_sto = 1;// STO 输出private int index_ok = 2;// OK输出private int index_ng = 3;// NG输出private int index_CST_Acomm = 7;// 程序切换成功
2.1 IO_Manager中输出CST_AComm
public void Out_CST_AComm(bool state)
{lock (_mutex){Outputs[index_CST_Acomm] = state;}
}
2.2 IO_Manager中输出Online信号
public void Out_Onlie(bool state)
{lock(_mutex){Outputs[index_online] = state;}
}

3 Form_vision 主程序中添加代码实现程序号切换和相机触发

3.0 添加program_no 变量
/// <summary>/// 当前程序号/// </summary>public int program_No = 0
3.1 IO_Circle中实现程序号的切换和CST_Acom的返回
 private void IO_Circle()
{bool pro_cst_cur = false;bool pro_cst_last = false;while (true){ // readInputs// writeOutputs System.Threading.Thread.Sleep(20);ContextManager.get_IOCtx().Read();ContextManager.get_IOCtx().Write();//更新程序号// CST  Accom 信号  pro_cst_cur = ContextManager.get_IOCtx().get_CST();if (pro_cst_cur && !pro_cst_last)  //判断上升沿触发{program_No = ContextManager.get_IOCtx().get_ProgramNO();//toDO 代码,程序切换ContextManager.get_IOCtx().Out_CST_AComm(true); } pro_cst_last = pro_cst_cur;// CST_AComm 复位if(!pro_cst_cur)ContextManager.get_IOCtx().Out_CST_AComm(false);if (StopProgramEvent.WaitOne(0, true)) break;}//end while  
}
3.2 Timer_Ticker中实现当前程序号的更新显示
private void timer1_Tick(object sender, EventArgs e)
{/// 更新程序号到控件Util_Helper.Set_NumberControl_Value(num_programNO, program_No);iO_Monitors1.update_status(true,true);
}

4 效果展示

4.1 IO_Client.exe先准备好程序号31到端口上

在这里插入图片描述

4.2 IO_Client.exe 输出CST 信号

Vision 接受到CST上升沿后,立刻执行程序切换,并且输出CST_Acomm信号给IO_Client
在这里插入图片描述

4.2 IO_Client.exe 接收到CST_AComm信号后, 复位 CST信号 ,Vision也会复位CST_Acomm

在这里插入图片描述

5 下一章节 我们会重点讲获取一次相机采集信号和输出一个STO脉冲

相关文章:

2.5 C#视觉程序开发实例1----IO_Manager实现切换程序

2.5 C#视觉程序开发实例1----IO_Manager实现切换程序 1 IO_Manager中输入实现 1.0 IO_Manager中输入部分引脚定义 // 设定index 目的是为了今后可以配置这些参数、 // 输入引脚定义 private int index_trig0 0; // trig index private int index_cst 7; //cst index priva…...

【入门篇】STM32寻址范围(更新中)

写在前面 STM32的寻址范围涉及存储器映射和32位地址线的使用。并且STM32的内存地址访问是按字节编址的,即每个存储单元是1字节(8位)。 一、寻址大小与范围 地址线根数 地址编号(二进制) 地址编号数(即内存大小) <...

DDD架构

1.DDD架构的概念&#xff1a; 领域驱动设计&#xff08;Domain-Driven Design, DDD&#xff09;是一种软件设计方法&#xff0c;旨在将软件系统的设计和开发焦点集中在领域模型上&#xff0c;以解决复杂业务问题 2.DDD架构解决了什么问题: 在以前的mvc架构种&#xff0c;三层结…...

Open3D KDtree的建立与使用

目录 一、概述 1.1kd树原理 1.2kd树搜索原理 1.3kd树构建示例 二、常见的领域搜索方式 2.1K近邻搜索&#xff08;K-Nearest Neighbors, KNN Search&#xff09; 2.2半径搜索&#xff08;Radius Search&#xff09; 2.3混合搜索&#xff08;Hybrid Search&#xff09; …...

C语言编程3:运算符,运算符的基本用法

C语言3&#x1f525;&#xff1a;运算符&#xff0c;运算符的基本用法 一、运算符&#x1f33f; &#x1f387;1.1 定义 运算符是指进行运算的动作&#xff0c;比如加法运算符"“&#xff0c;减法运算符”-" 算子是指参与运算的值&#xff0c;这个值可能是常数&a…...

如何通过SPI机制去实现读取配置文件并动态加载对应实现类

最近写完鱼皮的RPC项目后&#xff0c;打算整理出来一些编程技巧的模版。 有两种实现&#xff1a;1.ServiceLoader 2.SpiLoader 一、直接使用java.util下的ServiceLoader 首先在resource目录下创建 META-INF/services 目录&#xff0c;并且创一个名称为对应要实现的接口的包…...

双链表(数组模拟)

双链表&#xff08;数组模拟&#xff09; 什么是双链表数组模拟双链表题目 什么是双链表 双链表不同于单链表的是 每一个节点不但存储了下一个节点的位置&#xff0c;也存储了上一个节点的位置。 数组模拟双链表 所以如果用数组的话&#xff0c;就需要创建三个数组。 题目 …...

ChatGPT 5.0:一年半后的展望与看法

在人工智能领域&#xff0c;每一次技术的飞跃都预示着未来生活与工作方式的深刻变革。随着OpenAI在人工智能领域的不断探索与突破&#xff0c;ChatGPT系列模型已成为全球关注的焦点。当谈及ChatGPT 5.0在未来一年半后可能发布的前景时&#xff0c;我们不禁充满期待&#xff0c;…...

城市地下综合管廊物联网远程监控

城市地下综合管廊物联网远程监控 城市地下综合管廊&#xff0c;作为现代都市基础设施的重要组成部分&#xff0c;其物联网远程监控系统的构建是实现智慧城市建设的关键环节。这一系统集成了先进的信息技术、传感器技术、通信技术和数据处理技术&#xff0c;旨在对埋设于地下的…...

VS 附加进程调试

背景&#xff1a; 此方式适合VS、代码和待调试的exe在同一台机器上。 一、还原代码到和正在跑的exe同版本 此操作可以保证能够调试生产环境的exe 二、设置符号路径 1.调试->选项 三、附加进程 方式1&#xff1a; 打开VS&#xff0c;调试->附加到进程&#xff0c;出…...

核函数的深入理解

核函数 &#xff08;Kernel Function&#xff09;是一种在高维特征空间中隐式计算内积的方法&#xff0c;它允许在原始低维空间中通过一个简单的函数来实现高维空间中的内积计算&#xff0c;而无需显式地计算高维特征向量。 核函数 的基本思想是通过一个映射函数 ϕ \phi ϕ …...

使用Ckman部署ClickHouse集群介绍

使用Ckman部署ClickHouse集群介绍 1. Ckman简介 ClickHouse Manager是一个为ClickHouse数据库量身定制的管理工具&#xff0c;它是由擎创科技数据库团队主导研发的一款用来管理和监控ClickHouse集群的可视化运维工具。目前该工具已在github上开源&#xff0c;开源地址为&…...

「前端工具」postman接口测试工具详解

Postman 是一款流行的 API 开发工具,用于构建和测试 RESTful API。以下是 Postman 的一些关键特性和使用方法的详解: 1. 界面和基本操作 工作区:Postman 的主界面,用于显示集合、环境和全局变量。请求构建器:用于输入请求的 URL、HTTP 方法、请求头、请求体等。响应区:显…...

生成requirements.txt

pip install pipreqs pipreqs ./ --encodingutf-8 --force python导出requirements.txt的几种方法总结...

ubuntu ceph部署

ubuntu ceph部署 参考文档&#xff1a;http://docs.ceph.org.cn/start/ 节点配置 1个mon节点&#xff0c;3个osd节点 安装前准备 安装ceph-deploy 添加 release key wget -q -O- https://download.ceph.com/keys/release.asc | sudo apt-key add -添加Ceph软件包源&…...

2024.7.8

2024.7.8 【追逐影子的人&#xff0c;自己就是影子 —— 荷马】 Monday 六月初三 讲的根本听不懂好吧&#xff01; 目前只写了三道题&#xff08;但是黑色 确实是没见过这么抽象的数据结构 Gregor and the Two Painters Number of Components Equal LCM Subsets 这个lcm确实…...

Spring 外部jar包Bean自动装配

Spring 外部jar包Bean自动装配 背景介绍 公共代码模块被作为jar包引入业务项目&#xff0c;前者定义的bean即使添加了Component注解由于不会被扫描到也就无法被Spring管理。此处通过Spring SPI机制来完成 使用 spring.factories 在外部 jar 包中创建 spring.factories 文件&a…...

2通道音频ADC解码芯片ES7243L、ES7243E、ES7243,用于低成本实现模拟麦克风转换为IIS数字话筒

前言&#xff1a; 音频解码芯片某创参考价格&#xff1a; ES7243L 500&#xff1a;&#xffe5;1.36 / 个 ES7243E 500&#xff1a;&#xffe5;1.66 / 个 ES7243 500&#xff1a; &#xffe5;1.91 / 个 其中ES7243L工作电压为1.8V&#xff0c;与其他两款的3.3V工作电压不同&…...

uniapp跨域问题解决

找到menifest文件&#xff0c;在文件的最后添加如下代码&#xff1a; // h5 解决跨域问题"h5":{"devServer": {"proxy": {"/adminapi": {"target": "https://www.demo.com", // 目标访问网址"changeOrigin…...

[C++][ProtoBuf][Proto3语法][一]详细讲解

目录 1.字段规则2.消息类型的定义与使用1.定义2.使用 3.enum类型1.语法2.定义时注意3.代码 1.字段规则 消息的字段可以⽤下⾯⼏种规则来修饰&#xff1a; singular&#xff1a;消息中可以包含该字段零次或⼀次(不超过⼀次) proto3语法中&#xff0c;字段默认使⽤该规则 repeat…...

生成xcframework

打包 XCFramework 的方法 XCFramework 是苹果推出的一种多平台二进制分发格式&#xff0c;可以包含多个架构和平台的代码。打包 XCFramework 通常用于分发库或框架。 使用 Xcode 命令行工具打包 通过 xcodebuild 命令可以打包 XCFramework。确保项目已经配置好需要支持的平台…...

conda相比python好处

Conda 作为 Python 的环境和包管理工具&#xff0c;相比原生 Python 生态&#xff08;如 pip 虚拟环境&#xff09;有许多独特优势&#xff0c;尤其在多项目管理、依赖处理和跨平台兼容性等方面表现更优。以下是 Conda 的核心好处&#xff1a; 一、一站式环境管理&#xff1a…...

C++初阶-list的底层

目录 1.std::list实现的所有代码 2.list的简单介绍 2.1实现list的类 2.2_list_iterator的实现 2.2.1_list_iterator实现的原因和好处 2.2.2_list_iterator实现 2.3_list_node的实现 2.3.1. 避免递归的模板依赖 2.3.2. 内存布局一致性 2.3.3. 类型安全的替代方案 2.3.…...

剑指offer20_链表中环的入口节点

链表中环的入口节点 给定一个链表&#xff0c;若其中包含环&#xff0c;则输出环的入口节点。 若其中不包含环&#xff0c;则输出null。 数据范围 节点 val 值取值范围 [ 1 , 1000 ] [1,1000] [1,1000]。 节点 val 值各不相同。 链表长度 [ 0 , 500 ] [0,500] [0,500]。 …...

高等数学(下)题型笔记(八)空间解析几何与向量代数

目录 0 前言 1 向量的点乘 1.1 基本公式 1.2 例题 2 向量的叉乘 2.1 基础知识 2.2 例题 3 空间平面方程 3.1 基础知识 3.2 例题 4 空间直线方程 4.1 基础知识 4.2 例题 5 旋转曲面及其方程 5.1 基础知识 5.2 例题 6 空间曲面的法线与切平面 6.1 基础知识 6.2…...

数据链路层的主要功能是什么

数据链路层&#xff08;OSI模型第2层&#xff09;的核心功能是在相邻网络节点&#xff08;如交换机、主机&#xff09;间提供可靠的数据帧传输服务&#xff0c;主要职责包括&#xff1a; &#x1f511; 核心功能详解&#xff1a; 帧封装与解封装 封装&#xff1a; 将网络层下发…...

Python爬虫(一):爬虫伪装

一、网站防爬机制概述 在当今互联网环境中&#xff0c;具有一定规模或盈利性质的网站几乎都实施了各种防爬措施。这些措施主要分为两大类&#xff1a; 身份验证机制&#xff1a;直接将未经授权的爬虫阻挡在外反爬技术体系&#xff1a;通过各种技术手段增加爬虫获取数据的难度…...

【学习笔记】深入理解Java虚拟机学习笔记——第4章 虚拟机性能监控,故障处理工具

第2章 虚拟机性能监控&#xff0c;故障处理工具 4.1 概述 略 4.2 基础故障处理工具 4.2.1 jps:虚拟机进程状况工具 命令&#xff1a;jps [options] [hostid] 功能&#xff1a;本地虚拟机进程显示进程ID&#xff08;与ps相同&#xff09;&#xff0c;可同时显示主类&#x…...

图表类系列各种样式PPT模版分享

图标图表系列PPT模版&#xff0c;柱状图PPT模版&#xff0c;线状图PPT模版&#xff0c;折线图PPT模版&#xff0c;饼状图PPT模版&#xff0c;雷达图PPT模版&#xff0c;树状图PPT模版 图表类系列各种样式PPT模版分享&#xff1a;图表系列PPT模板https://pan.quark.cn/s/20d40aa…...

Python基于历史模拟方法实现投资组合风险管理的VaR与ES模型项目实战

说明&#xff1a;这是一个机器学习实战项目&#xff08;附带数据代码文档&#xff09;&#xff0c;如需数据代码文档可以直接到文章最后关注获取。 1.项目背景 在金融市场日益复杂和波动加剧的背景下&#xff0c;风险管理成为金融机构和个人投资者关注的核心议题之一。VaR&…...