2025-02-20 11:05:45
问题:int GetCardCompareCurrentPointExtern(int CardNo, int[] pos);
int GetCardCompareCurrentPointExtern(int CardNo, ref int[] pos);
上面是C#的两个函数定义。 由于int数组本身会传地址,因此不需要加ref。这个问题细想一下还真是个知识盲点。在 C# 中,数组是引...
2025-02-16 09:09:31
勇哥注:一个老工程师为自己定的迈向老年后的职业规划,以及deepseek的回答。问题:我是自动化设备制造行业的老工程师,我都40好几了。
如果失业后,应该不可能再找到对口公司打工了。所以我得规划自己的以后生存的路在哪里。
目前我想的是,走自动化小白的教育方向的路。
利用数字孪生技术打造虚拟自动化设备,一方面用它来销售+服务来营利,另一方面用它来进行教育服务。
这样我就可以继续从事原来熟悉的...
2025-02-13 17:16:14
在运动控制卡中,锁存(Latch)功能通常用于精确捕获轴的位置或状态信息。轴的 LTC(Latch Trigger Capture)信号是实现这一功能的关键信号。以下是 LTC 信号的介绍:LTC 信号的作用精确位置捕获:当 LTC 信号被触发时,运动控制卡会立即捕获轴的当前位置(编码器反馈值),并将其存储到特定的寄存器中。这种捕获是硬件级别的,具有极高的精度和实时性,通常延迟在微秒级甚至更低。外...
2025-02-12 15:23:20
勇哥注:game4automation是unity的一个数字孪生插件,专门用于自动化行业。下面是勇哥出的系列教程,会持续添加。game4automation教程(一)创建一个带有光源、传送带和感应器的小例子http://www.skcircle.com/?id=2561game4automation教程(二)引入传感器、plc输入输出http://www.skcircle.com/?id=2562...
2025-02-11 21:50:13
勇哥注:下面勇哥详细说一下ADTV项目的环境搭建;用到的知识点;最后谈下不同目的朋友的学习大方向的指南。(一)搭建ADTV项目的学习环境1. Unity编辑器版本 2022.3.48f1c1游戏引擎。使用个人许可证即可。必须是此版本,否则ADTV的unity版本打不开。unity安装见:https://www.bilibili.com/video/BV1gQ4y1e7SS/?p=4&vd_...
2025-02-08 21:00:23
这是勇哥发起的一个开源研究项目ADTV(Automated Digital Twin Virtual Device),旨在构建一种基于unity的工业自动化数字孪生设备,致力于为工业自动化行业的学习者提供一种高效、功能全面的虚拟实验设备。通过支持后面提到的五大核心技术范畴,设备可以做为全栈学习应用场景。注意:但是此项目只是一群爱好者聚在一起做的技术研究的合集,暂时并非有实际产品。只是实验源码都是开...
2025-02-06 17:22:19
(一)一个程序员的求索我的职业生涯始于金山软件,是这家公司的第6号员工。软件交付的是功能,就像WPS提供的是文字处理能力,我们卖出拷贝,用户获得能力。而且,这种交付是一次性的(至少在新世纪全面互联网化之前是这样)。即便今天微软的营收中Windows、Of f ice依然占比不小,但Of f ice也有Of f ice 365这样的订阅服务。订阅,正在逐渐替代拷贝,这实际上是一种按需付费。不论是受技...
2025-01-24 15:04:57
勇哥注:偶尔在知乎看到这篇,很有感触。也许,这个软件的作者也没想到,他们身死后,一部分生者因为这款软件让大家重新认识并记得他。《寻梦环游记》里说,“死亡不是终点,只有当这个世界上再也没有人能记得你的时候,这才是你的终极死亡”显然,此软件的两名作者,在某种意义上来说,又重新活在了人们的世界里。。。。。2019年,有一个叫方瑜,网名冷敏寒子夜的女孩在网上寻找一个极为冷僻的软件输入法:“鼠标打字·高级版...
2025-01-23 10:30:06
urface 实体键盘保护套包含一个用途类似于鼠标的双按钮触控板。 在触控板上使用手势可以进行诸如上下滚动、放大和选择项目之类的操作。 你还可以调整设置以避免触控板对意外触摸等进行响应。使用触摸板 如果 Surface 具有触控板,则它具有右键单击和左键单击按钮,作用相当于鼠标上的按钮。注意: 为了防止键入时意外触摸致使光标跳动,可以设置点击操作之前的延迟、关闭点击或关闭触摸板。 若要了解如何操作...
2025-01-09 21:09:38
答案是不支持。问这个问题的人,想完全以plcsim advanced代替物理的plc,西门子不会傻得弄出个全功能的软件plc来挑战自家硬件plc。虽然西门子有这样的技术实力(需要解决windows系统下的实时性问题)。Profinet和Profibus总线系统都不支持。只支持Local Softbus 本地虚拟总线通讯,Local TCP/IP 本地以太网通讯,Distributed TCP/IP...
2025-01-09 16:02:02
勇哥注:这段小代码放这里,是为了记录了一个常用常忘的知识。实验的时候,此卡自带4个输入IO,另外总线上连接了两个16位的输入DI。因此共有36个输入DI。测试的时候故意短接了三个输入IO点。这款卡的按字节读取全部IO的api是MCCE135.mcc_io_read_inbyte(),说明如下:short mcc_io_read_inbyte(WORD CardNo,WORD StartByte,W...
2025-01-09 11:37:42
勇哥注:是不是在使用博图V18这些新版本,搭配PLCSIM Advanced进行仿真时,经常出现下图这样的密码、安全提示啥的?真是苦不堪言啊~实际上,我们从来没设置过什么鸟密码~请参考下面的资料:保护机密的 PLC 组态数据功能自 TIA Portal V17 起,新增了安全向导用于帮助客户快速进行安全相关的设置。其中保护机密的 PLC 组态数据可为每个 PLC 提供更高的项目存储安全性。版本要求...
2025-01-06 16:56:03
2.3 Operating the Application ExampleNoteIn order to start the PLCSIM Advanced simulation via the
“CoSimulationPlcSimAdv” application,
you do not have to start the control panel of PLCSIM Advance...
2025-01-05 20:41:16
2 Engineering 2.1 Configuration in the TIA PortalThe enclosed TIA Portal project does not require any further configuration. If you create your own project, make the following settings in order to si...
2025-01-05 17:57:11
勇哥注:PLCSIM Advanced高级应用主题:通过API进行协同模拟。整篇文章围绕官方提供的一个示例程序进行讲解。不是单纯介绍运行时API的手册。目录:保证和责任.......................................................................................................................
2025-01-04 15:08:34
博图新建一个项目。在Main程序中添加一个MB_SERVER模块。数据块中需要对两个引脚REG和Connect赋值。它们是在全局数据块中创建两上变量做到的。下面是赋值过程:双击“添加新块”,添加一个全局数据块,起名为ModbusData。创建一个变量PARA,数据类型是一个结构体TCON_IP_v4。下面是它展开后我们要填写的项目。(1)InterfaceId这一项可以通过查询系统常量,如下面步骤...
2025-01-02 15:13:29
勇哥注:有了PLC SIM Advanced,你就相当于有了一台全功能的1500的西门子plc。再配上数字孪生的虚拟设备,可以完全在没有实际设备情况下,仿真整台设备的动作。下面说下怎么样用博图+PLC SIM Advanced完成一个基于tcp通讯的小例子。实验用的是博图v18,Plc sim Advanced 6.0(一)添加新设备选择1500的cpu。取消保护勾选设置项目属性注意:这是是项目名...
2024-12-27 15:18:10
勇哥注:机器人反向动力学,可以取坐标空间中的某个点位,而让机器人的每个关节反向求解出要动多少个单位。这样你的机器人就不用为了到达某个位置,而依次运动每个关节。之前我们只能使用关节动画来模拟机器人的动作,或者使用unity的约束来模拟。现在game4automation的机器人反向动力学就可以做到完全真实的模拟点位运动(PTP运动)。下图演示了反向动力学走点位的效果:演示模型和预制件使用我们的专用演...
2024-12-27 13:42:10
勇哥注:halcon绘制任意形状态的roi的功能,是比较常见的要求。由于halcon原来是不支持的,这份C#代码实现了此需求。源码下载:要求vs2015,C#源码。...
2024-12-26 21:54:49
勇哥注:这是勇哥的一个毕业论文中的实验源码。它是对三菱plc的指令的仿真。(部分指令)。但是其梯形图部分还没有完工。你可以扩展这个软plc的指令,然后用梯形图编制+运行自动化程序。这样可以脱离C#编程。当然这是当年勇哥减少高级语言依赖的一种思路。(现在看来,其实这种思路还是摆脱不了专业依赖)。论文见下面文章 :http://www.skcircle.com/?id=429 程序运行界面如下:源码下...
2024-12-26 21:42:04
勇哥注:一个基于雷塞卡绘制运动曲线的例子。程序界面如下:源码下载:vs2015及以上版本。C#的源码。...
2024-12-26 21:17:51
勇哥注:一直以来,找一个可以进行绘制运动曲线的控件,比较困难。它最好能实现雷塞Motion中那种绘制的能力。ZGraph就是一个选择。示例界面如下:源码下载:C#源码,要求vs2015及以上...
2024-12-19 14:08:59
勇哥注:modbus通讯协议本身是可靠的,不然也不会发明起至今快50年了,还在自动化行业中广泛使用。然而当应用各种第三方modbus组件编程的时候,由于组件的实现者、组件的应用者没有遵循标准来实现和应用,就会造成各种通讯异常。这就有点像一台pc机,硬件厂商能保证自己的硬件没有问题,然而架不住使用者乱装软件,最终还是可能会死机蓝屏。使用modbus组件的使用者想怎么用就怎么用,没有章法,这是此问题的...
2024-12-18 21:15:55
勇哥注:下面是一个综合的例子,通过一个杜撰的设备,演示了gam4automation的能力。为了完成这个例子,还需要配合一些自定义脚本,以及做为上位机的C#程序。完整的设备见下图:设备是一个分拣设备。上下料的轴有x, z轴。分拣的轴是u轴。这个例子勇哥只是弄了个简单的示意场景,并没有导入cad图纸。仿真这边实现了下面的功能:(1)传送带(2)x, z, u轴(3)工位上的双控气缸(4)吸嘴上的真空...
2024-12-18 09:06:22
勇哥注:让设备回到播放前的状态,这个需求很重要。不然我们想从头来进行测试,就只能重新播放了。我们从下面几个方面来进行:(一)删除所有的mu目的是把物料全部清空,就像我们从设备里人工取走一样。Source组件中有两个属性:Generate MU, Delete All MU。前者在每创建一个mu的复制品的时候,就会给个信号。后者勾选后则可以删除所有mu的复制品。(二)重新加载场景如果记录场景状态,...
2024-12-17 15:13:38
一般来说,我们都是使用Drive组件的 Jog Forward和Jog Backward来做Jog运动。我们会使用Drive_Destination Motor组件来做ptp点位运动。但是这两都同时有效的时候,你会发现手工打勾Jog Forward和Jog Backward就没有效果了。这是因为此时运动被Drive_Destination Motor组件接管了。怎么让这两者(ptp和jog)可以共...
2024-12-17 11:46:55
Drive_Destination Motor组件是我们实现ptp运动的主要方式。现在有一个需求是必须运动中响应停止,以及继续。然而你是不是发现Drive_Destination Motor组件没有停止?如果你想通过Start Drive为false来停止,这个是不行的。如果你想通过Drive组件的Stop Drive来停止,会发现也根本停不下来。怎么办呢?正确的方式是先Drive_Destina...
2024-12-17 10:34:57
勇哥注:
趁着需要测试运动回原的精度,加上本来需要编写netMarketing类库的应用教程,
那就顺手发一个制作视觉+运动测试框架的系列教程吧。
网上的netMarketing类库是1.3.0,这个版本需要使用halcon12.0
勇哥在演示的时候用的netMarketing版本比这个高,
这个版本还没有发布,使用的是halcon19.11。
所以下载文章源代码的朋友,注意halco...
2024-12-17 10:00:15
工业相机镜头焦距、工作距离、视野等选型的计算一.术语解释1.工作距离(WD):指镜头前机械端面到被拍物体表面的物理距离。 2.视场(FOV):也称视野,是指能被视觉系统观察到的物方可视范围大小。 3.焦距(f):无限远目标的轴上共轭点是工业镜头的(像方)焦点,而此焦点到(像方)主面的距离称为焦距。焦距描述了工业镜头的基本成像规律:在不同物距上,目标的成像位置和成像大小由焦距决定。(市场上工业镜头焦...
2024-12-17 09:47:26
1:工业相机的丢帧的问题是由什么引起的?丢帧表现:(一)相机预览模式下,无法以满帧的速度传输图像(二)触发拍照模式下,相机传输图像数量少于触发次数(触发频率应小于帧率)(三)图像处理软件处理的图像数量小于预期对应的丢帧可能原因:(一)预览或触发模式下丢帧 ①系统防火墙未关闭;杀毒软件拦截 ②网络环境为非千兆网络(查看网口速度) ③网卡未开...