2026/2/10 14:22:00
网站建设
项目流程
如何做logo模板下载网站,丰镇市网站丰镇高铁在哪个位置建设,网站备案域名怎么买,快速建站工具C#3C运动控制软件框架#xff0c;A项目标准界面#xff0c;用于半导体#xff0c;新能源等项目#xff0c;用了5年项目框架。 包含三级权限#xff0c;SQL数据操作.集成MES WebService服务调用方法。 选择轴的个数可以自定义#xff0c;某个就成用到的轴也可以自定义A项目标准界面用于半导体新能源等项目用了5年项目框架。 包含三级权限SQL数据操作.集成MES WebService服务调用方法。 选择轴的个数可以自定义某个就成用到的轴也可以自定义窗体使用模块化调用方式集成EtherCAT adlik 833X 204 208C控制卡研华Advtech控制卡基恩士点 线laser调用库。 轴控制使用快捷键 CtrlA D W S来控制轴运动方向流水线软件写法等等功能可直接打开运行数据库文件也在目录下还原即可登录密码为111,软件全程无管控。权限系统整得挺实在三级权限直接怼进SQLServer。用户表里RoleID字段是关键0是操作工只能按按钮1是工程师能改参数2是管理员随便浪。登录时搞了个骚操作string decryptPass TripleDESHelper.Decrypt(loginPass); //数据库存的加密密码 var user db.ExecuteQueryUser($SELECT * FROM Users WHERE UserName{userName} AND Password{decryptPass}); CurrentUser.Level (UserLevel)user.RoleID;密码用3DES加密存着默认密码111记得改。数据库备份文件扔在/DB文件夹用SSMS还原就能直接用。硬件兼容这块下了血本工厂模式玩得飞起。控制卡驱动抽象成个接口public interface IMotionController { bool InitCard(uint cardNum); void SetAxisParam(int axis, MotionParam param); //...20个方法 } //EtherCAT实现 public class EtherCATDriver : IMotionController { //调用dllimport的底层库 [DllImport(ECATMaster.dll)] private static extern int ECAT_Init(); } //研华控制卡 public class AdvantechDriver : IMotionController { ... }配置文件里写个DriverType启动时自动加载对应驱动。实测过Adlink 833X的200系列卡基恩士激光器要特别注意触发时序。C#3C运动控制软件框架A项目标准界面用于半导体新能源等项目用了5年项目框架。 包含三级权限SQL数据操作.集成MES WebService服务调用方法。 选择轴的个数可以自定义某个就成用到的轴也可以自定义窗体使用模块化调用方式集成EtherCAT adlik 833X 204 208C控制卡研华Advtech控制卡基恩士点 线laser调用库。 轴控制使用快捷键 CtrlA D W S来控制轴运动方向流水线软件写法等等功能可直接打开运行数据库文件也在目录下还原即可登录密码为111,软件全程无管控。轴控制快捷键有点反人类但用熟了是真香protected override void OnKeyDown(KeyEventArgs e) { if (e.Control SelectedAxis ! null) { switch (e.KeyCode) { case Keys.A: MoveAxis(-0.1); break; //左移 case Keys.D: MoveAxis(0.1); break; //右移 case Keys.W: JogForward(); break; //点动正转 case Keys.S: JogBackward(); break; //点动反转 } } }注意这里用了死区处理小于0.05mm/s的速度直接过滤防手抖。流水线逻辑用状态模式实现二十几个状态自动切换当年调这个没少掉头发。模块化窗体是亮点每个功能模块都是独立UserControl。主界面动态加载public void LoadModule(string moduleName) { var module Assembly.GetExecutingAssembly() .GetTypes() .First(t t.Name moduleName Module); var control (UserControl)Activator.CreateInstance(module); panelMain.Controls.Clear(); panelMain.Controls.Add(control); }数据库设计也讲究举个轴配置表的例子CREATE TABLE AxisConfig ( AxisIndex INT PRIMARY KEY, MaxSpeed DECIMAL(18,2), Acceleration DECIMAL(18,2), HomeOffset DECIMAL(18,3), IsRotary BIT DEFAULT 0, ScaleFactor DECIMAL(18,5) --脉冲当量 )参数改完自动同步到内存对象改完不用重启立即生效。MES对接用了个沙雕方法——直接把WebService调用封装成脚本引擎产线小哥都能写对接代码var mes new MESProxy(http://10.1.1.100/MESService); mes.Invoke(UploadYieldData, new { DeviceID Config.DeviceNo, Qty currentYield, Time DateTime.Now.ToString(yyyyMMddHHmmss) });这框架现在看可能有点过时但胜在开箱即用。所有dll都扔在/Lib下VS2019打开直接F5运行。注意Windows功能里要开.NET 3.5支持实测Win10 LTSC跑得稳稳的。