作者:勇哥,很想停止 | 分类:.net程序调试 | 浏览:151 | 评论:0
2025-03-13 10:43:12
(一)可空类型到底有什么意义不好的代码:正常返回NodeType,但是异常返回什么呢?这是个问题,所以作者想返回异常的方式。这样会影响性能,异常不要用于转变程序流程。 public enum NodeType { Start, Process, Decision, Loop, End }
private NodeType GetNodeTypeInMousePos(int mouseX,in...
2025-03-12 21:32:24
流程图流程图是工程的核心,了解流程图的各个功能,根据实际需求,配出功能完善的工程,是软件使用的重中之重。在流程图中有2种元素,图元和link线。例如:为图元;link线为带箭头的线。在流程图的图元或link线上右键,弹出流程图的功能菜单,如下图。各个功能有对应的快捷键,用户可使用快捷键轻松高效的配置流程图。图元编辑新增/删除:新增/删除图元;新增/移除分支:控制流中,可新增/移除分支(移除时,需要...
2025-03-11 22:44:55
好的,我现在需要解决的问题是,如何将使用GDI在C#中绘制的流程图转换为可执行的C#代码。用户希望了解实现这一功能的思路,我需要详细分析可能的步骤和考虑因素。首先,我需要明确用户的需求。用户提到的是用GDI编写的流程图,这可能指的是在Windows Forms应用程序中使用Graphics类绘制的流程图控件或自定义绘图。转换的目标是将这个流程图的结构和逻辑转化为可以执行的代码,比如根据流程图的节点...
2025-03-11 15:51:53
勇哥注:
趁着需要测试运动回原的精度,加上本来需要编写netMarketing类库的应用教程,
那就顺手发一个制作视觉+运动测试框架的系列教程吧。
网上的netMarketing类库是1.3.0,这个版本需要使用halcon12.0
勇哥在演示的时候用的netMarketing版本比这个高,
这个版本还没有发布,使用的是halcon19.11。
所以下载文章源代码的朋友,注意halco...
2025-03-07 08:41:54
勇哥注:如何高效率的利用ai工具,以后是我们程序员的一个新技能点。下面是我的问题:使用ai的时候,如果纯粹是用文字表达需求,有些任务是说不清楚的,或者表达有多义性。如果能画个图、给个思维图、图表描述等这些多模态表达,会更有利于表达需求。关于我的想法,你给个建议下面是deepseek的回答:嗯,用户提到在使用AI时,只用文字表达需求有时候说不清楚,或者有歧义。他们觉得如果能用图表、思维导图等多模态方...
2025-03-05 10:59:35
勇哥注:某次C盘空间变0时,系统启动了下面的一个程序。结果发现这个工具真是好用!有了它就不用那些收费的第三方工具了!有了这个工具,你按提示,转移、删除、卸载三套组合拳打下来,就能搞定C盘不足的问题。当然还要配合微信、QQ的设置,把缓存位置换到其它盘上去,它们也是耗盘大户。想人工启动这个工具,在windows设备里搜索“打开存储感知”。...
2025-03-03 10:38:57
C#中,运动卡中读输入IO状态的api,返回byte[2], 表示了一组16位输入IO的状态。
我要把它转换为一个int型(32位),请写出代码在C#中,你可以将 byte[2] 转换为 int 类型(32位)。由于 byte[2] 表示的是16位的数据,你可以使用 BitConverter 类来将其转换为 int 类型。以下是一个示例代码:byte[] inputStates = new by...
2025-02-27 22:41:55
我用unity做虚拟设备,对外部走modbus通讯。
如果我想用plc来控制虚拟设备的话,就只能让plc也走modbus通讯。
这样的话,就无法使用plc的out这样的线圈指令直接点亮虚拟机的io了。
有什么办法可以直接让plc使用out指令点亮虚拟设备的输出IO呢?在Unity虚拟设备与PLC之间实现直接使用OUT指令控制IO的解决方案,可以按照以下步骤进行:核心思路:通过协议转换或虚拟I...
2025-02-24 15:56:33
勇哥注:转载知乎的回答,能涨一些见识。。。(一)只能C#。这个问题的重点在于,上位机存在的根本价值是什么?是为了有个UI交互界面吗?下位机用个ESP32+当Server,AP模式,搞个B/S架构+完全不用上位机,直接html+css,照样能搞出UI界面。有个浏览器就能用,电脑、手机各种系统随便跨。ESP32白带Wifi,只要搞个内网穿透,就能通过HTTP+、MQTT+等网络协议远程操作GPIO+....
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://47.98.154.65/?id=2561game4automation教程(二)引入传感器、plc输入输出http://47.98.154.65/?id=2562game4aut...
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#源码。...