2019-07-13 15:06:17
命名空间:netMarketing.database.mdbFun功能:Access数据库处理类,只适用于扩展名为.mdb的数据库,不适合新版的Access数据库功能详细说明:2007版本以前的access文件扩展名是mdb,2007版本以后的access文件扩展名是accdb。这个类只能处理扩展名为.mdb的老版本Access数据库,勇哥把它保留在netMarketing中只是为了兼容一些老旧的...
2019-07-13 14:42:05
勇哥偶然在硬盘上看到这个项目。其目的是用A/D采集卡采集基恩士G025激光控制器的模拟输出信号,其目的是实现激光数据的实时读取。因为G025的批量采集方式是等采集完成才由控制器缓存下载一次性到IPC的,这个过程中无法实时看到激光采集到数据。这个实验用到的是9111 A/D采集卡,把激光控制器的+-10V的信号转为数字量。该验证勇哥做了足足半个月,转换结果非常的好,印象中数字量和模拟量转换后的结果其...
2019-07-13 10:59:09
命名空间:PLCLibrary.SiemensProtocol功能:西门子PLC通讯类功能详细说明:这个类经测试可以支持S7 300, S7 1200, S7 1500等西门子PLC,勇哥已经经过实际项目的检验,高度可靠,大家可以放心使用。常用函数列表:public string BrandPLCModel { get; }
public bool ConnStatus { get; }
pu...
2019-07-12 23:09:31
命名空间:netMarketing.automation.plc.softPlc功能:三菱FX2N PLC仿真功能详细说明:目前暂时只支持三菱PLC fx2n的下列指令:LD,LDI,LDP,LDF,AND,ANB,ANI,ANDP,ANDF,OR,ORI,ORB,ORP,ORF,OUT,MPS,MPP,MRD,INC,DEC,SET,RST,MOV,XCH,END这个类是勇哥很早以前开发的,本意...
2019-07-12 14:26:55
勇哥在使用Nuget安装netMarketing类库时可以正常使用其下的控件,但是如果以加载工程的方式使用netMarketing类库,如下方式:以多个工程的方式使用netMarketing类库及其组件。在用户工程demo中引用netMarketing及其组件。在demo工程的面板上拖入其控件时却发现报下面的错误:Visual Studio 报错:未能加载工具箱项xxxxx,将从项目中移除这个问题...
2019-07-12 14:25:57
命名空间:netMarketing.automation.hardware.Light功能:OPT光源控制器用的控件功能详细说明:OPT的光控控制器在勇哥所在公司应用比较广泛,因此将其集成进入netMarketing,以控件的方式供大家使用。常用函数列表:这个控件常用的只有一个IntensityUpdateEvent事件,它是在拖动4个通道的滑块改变亮度时触发的事件,会传出4个int型。注意本控件...
2019-07-12 10:33:53
和以前的同事聊了一下他最近的项目,需要求产品的平面度。也就是产品本身是否面不平整,对于在这个平面上安装摄像头之类的元件来说,这个平面度是受工艺管控的。这个同事学校刚毕业没多久,学习得蛮快的,一年左右就能自己上手项目了,赞一个!由于这个知识勇哥也欠缺,就此记录一下,隐去项目本身,只用文字和代码记录一下相关的知识。下面代码由同事提供,在此对他表示感谢!平面度和平行度的算法平面度就是采集到一组点(x,y...
2019-07-12 09:59:26
命名空间:netMarketing.automation.hardware.MotonCard.dmc2210功能:雷塞dmc2210运动卡封装类功能详细说明:雷塞DMC2210运动控制卡是一款2轴运动控制卡,支持2轴差补。工作中见得比较多的一款。支持win64位系统。这个类只适用于快速测试,已经做了缺省值的运动参数配置,直接可以用起来,以方便测试。常用函数列表:/// 读通用IO状态
publ...
2019-07-12 09:53:34
“猪悟能的博客”中这篇文章,是勇哥多年前写的。今天有个实验要用到这款编码器,时隔近4年了,却忘记怎么接线了。打电话厂家,居然说这款产品太早了,他也不知道怎么接,估计已经停产了吧。特地转载一下这篇文章,并附上接线的方法。下图是接线方法:这款盈动的线性绝对值编码器型号为: CAPLIN-A-485其安装好光栅尺后的外型下面这样的.工作的时候,信号端子和光栅尺是固定的, 滑头由电机带动.编码器数据由48...
2019-07-12 08:40:04
CL3000是基恩士推出的同轴激光位移传感器。相对于旧有型号的H025,H028红色点激光来说,还是有其优势的。具体可以参考使用手册。这里勇哥只是附上测试用的代码,供大家参考。using CL3_IF_DllSample;
using Common;
using System;
using System.Collections.Generic;
using System.Component...
2019-07-11 22:27:40
反混淆是用来干什么的?勇哥不知道。我只是用来参考一下作者代码的编程思路用的。我看了一下,我硬盘中的相关工具好多,截个图大家参考一下下面说一个勇哥常用的:c#反混淆工具de4dotde4dot是一个开源的.net反混淆脱壳工具,是用C#编写的,介绍一下它的使用方法首先 pushd 到de4dot.exe所在文件夹,然后调用 de4dot.exe 路径+dll名称如下图Detected Unknow...
2019-07-11 09:44:42
如下图,黑色的电芯,蓝色的是治具。把电芯放在治具里面,如果可以轻松放进去,证明电芯的尺寸是合格的。在这个例子里面,就要用到检查一个多边形是否在另一个多边形的内部的问题。使用C#的 Region类就可以检查一个多边形是否在另一个多边的形的内部。勇哥因为上面的治具验证电芯的问题,偶然发现C#里面居然还有这么一个Region类。这个检查方法是:Region.IsVisible,如下图所示:下面的演示程序...
2019-06-28 21:31:19
勇哥目前在一款尺寸测量设备中,应用到了一些算法,在这里做记录。下面是算法用到的一些函数。/// <summary>
/// 新建一条拟合直线
/// </summary>
/// <param name="linePt"></param>
/// <pa...
2019-05-29 22:27:59
一段常用的代码,取指定目录下所有的文件,并且会递归搜索所有子目录下的文件。using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
us...
2019-05-27 09:41:09
已知直线的起始端点与终止端点,移动到指定点的位置。这个必须要考虑直线有可能是任意角度的问题。#代码如下:要注意,下面的代码需要安装netMarketing类库。using HalconDotNet;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;...
2019-05-14 21:59:28
名空间:netMarketing.Transfer功能:数据转换类的基础,提供了一些基础的方法实现.功能详细说明:这个类是IByteTransform接口的实现。主要服务于读写plc内存时进行数据转换的操作。数据转换操作包括: plc内存数据转换为不同数据类型;指定plc内存数据的高位低位字节顺序=============从byte数组取值==============
/// 从缓存中提取出bo...
2019-05-14 21:32:25
名空间:netMarketing.Transfer功能:支持转换器的基础接口功能详细说明:凡是读写plc内存的功能都要实现这个接口。 本接口共有3种转换的机制 1. 对等转换,字节不需要颠倒,比如三菱PLC,Hsl通信协议 2. 颠倒转换,字节需要完全颠倒,比如西门子PLC 3. 以2字节为单位颠倒转换,比如Modbus协议=============从byte数组取值==...
2019-05-12 15:00:19
名空间:UserUI功能:自定义组件,dataGridViewEx功能详细说明:dataGridViewEx是一个扩展功能的dataGridView,它实现的更丰富的表头控制,并且带有报表输出功能。下图是它的效果的一个演示例子截图。后面会给出一个简单的使用例子。dataGridViewHelper类是一个方便操作dataGridView控件(包括dataGridViewEx控件)的类。下面是演示代...
2019-04-23 11:44:50
draw_rectangle1_mod 和 draw_rectangle2_mod画矩形ROI的一些问题!:< 一 >错误情景再现: 参数没有错误,原因是在Image窗口上画ROI的时候,没有移动和改变起始ROI大小,直接右键确定,所导致的错误(输出值变为空),请问如何处理这个问题?< 二 >产生错误的具体步骤说明:1、hdevelop源代码,先执行draw_rec...
2019-04-21 21:16:23
勇哥在看到泛型类的时候,感觉需要补充一下这方面的知识,本站还原有一篇相关的文章:C# 中泛型类的定义以下引用一位前辈的更详细的一篇文章——————————————————————————————所谓泛型,即通过参数化类型来实现在同一份代码上操作多种数据类型。 泛型编程是一种编程范式,它利用“参数化类型”将类型抽象化,从而实现更为灵活的复用。在定义泛型类时,在对客户端代码能够在实例化类时,可以用类...
2019-04-20 15:34:48
基础的二维变换是:平移,斜切,缩放,旋转,镜像了解这个知识的目的是应用于像点胶设备中点位坐标的旋转上面。源代码:using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
u...
2019-04-15 21:34:12
命名空间:sharClass.UserPermission功能:用户权限类,可为类或者Form提供用户权限检查机制功能详细说明:用户权限类,可为类或者Form提供用户权限检查机制。常用函数列表:/// <summary>
/// 权限改变通知
/// </summary>
public event Action<userLeveEnum> levelUpd...
2019-04-15 21:09:57
命名空间:sharClass.myForm功能:myForm封装了记录窗体位置、大小等信息,以及统一化字休颜色风格, 以及继承DockContent等功能功能详细说明:myForm封装了记录窗体位置、大小等信息,以及统一化字休颜色风格, 以及继承DockContent等功能。所有Form都应该继承myForm以提供Form功能及额外的好。2018.8.11增加权限管理的功能,见接口IuserPer...
2019-04-08 15:56:26
这个例子是利用netMarketing类库组建MDI多文档窗口界面。这种多文档界面的好处是面板可以任意依靠位置,有点像VS开发环境中的那种面板剥离停靠效果。
对于大部分应用来说,这种效果可以有效的解决用户在界面上的需求变更。
变态的客户经常希望程序的各种面板按他们的想法出现在指定的位置,而面板固定不变的程序就只能傻眼。...
2019-04-06 10:04:02
这个例子使用HslCommunication类库的三菱plc读写测试程序,所以在使用前,请安装这个组件。HslCommunication类库的作者功底扎实,其代码质量很高,是勇哥学习的标榜。同时作者有愿望和勇气为工业4.0做技术上的积累,这个高度让人汗颜,这里向作者表达真心的致敬。示例代码:using HslCommunication;
using HslCommunication.Profin...
2019-03-31 12:09:03
在v1.3.0版本的netMarketing类库中,dataSetHelper类已经做了多线程安全性的处理。对于在多线程下绑定dataTable到dataGridView控件时出现的错误(见下图1),这一版已经做了处理。(图1)详细的解决办法请参考下面的演示程序。其关键的是使用returnDataTableCopy()函数返回表的拷贝,而不是直接使用returnDataTable()返回表对象。...
2019-03-27 19:05:18
在视觉调试的时候,如果断点查看Linef对象的Points信息(即线的点集合),都是包含点位置x,y信息的数据,有些时候想显示Linef对象的points信息为图形化,则可以使用下面的小程序。你只需要vs的“即时窗口”输出这个Points对象,然后把它复制下来,粘贴到程序窗体中,然后点击“计算窗口内points”转换即可。下面的复制下来的Points对象: [0]: {4086.823730468...
2019-03-23 17:18:24
组态软件的一些组件,关联到plc的内存,能反映出plc程序的运行结果。下面的程序模拟了组态软件这种效果,其目的是方便测试plc程序的运行效果,而不借助于实际的硬件。例如我们用plc编写一下交通灯轮换显示的程序,可以用本程序实现实时的结果显示。这里的plc程序勇哥只是用3个输入IO,点亮3个输出IOplc用的是欧姆龙的cp1h下面是pc端的程序,当设置好plc的连接参数和输出IO地址后,会实时显示上...
2019-03-18 11:39:19
命名空间:netMarketing.automation.plc.Omron.FinsLibrary功能:欧姆龙PLC基于Tcp通讯的Fins通讯类,支持全系列的欧龙PLC功能详细说明:FinsSocket支持的欧姆龙PLC包括CP系列, Nj系列, Nx系列的欧姆PLC。可以在监视模式或者运行模下读写PLC的内存。这个类使用简单,已经经过多个项目检验过,勇哥推荐使用它!常用函数列表:/// 构造...
2019-03-16 21:09:26
引言面向对向程序设计的三大特征是: 封装,继承,多态平时做设备的程序用得最多的还是封装,或者还有一些基于局部功能性的继承。真心来说程序仅仅是为了实现功能,还远远谈不上真正的是面向对象开发。当然这也是有原因的:一方面,设计模式并不是直接写出来的,而是重构代码改出来的(至少勇哥是这么认为的)。在完成了设备功能的情况下,往往因为时间关系,不可能再重构代码,因为当设备开始进行生产状态后,客户认为再去动代码...