【PMAC】Chapter4:PMAC的C#开发
1、简介
这是个关于pmac上位机的简单编程,以下皆以1号电机为例,其他电机需根据实际修改变量
2、代码
2.1 dll的导入
第一种方法:首先要下载pmac的软件pewin32 pro,在vs中新建一个项目,在引用——添加引用——COM中查找PcommServer 1.0 type Library,确认引入。
第二种方法:官网下载
2.2 实例化
using PCOMMSERVERLib;public partial class DEMO : Form{public static PCOMMSERVERLib.PmacDeviceClass PMAC;public bool selectPmacSuccess = false;public bool openPmacSuccess = false;public int pmacNumber;// 1. (打开程序后的动作)public DEMO(){InitializeComponent();PMAC = new PmacDeviceClass();}
}
2.3 建立通讯
// 2. 建立通讯private void LinkPMAC(){ PMAC.SelectDevice(0,out pmacNumber,out selectPmacSuccess);if ( selectPmacSuccess ){PMAC.Open(pmacNumber, out openPmacSuccess);if (openPmacSuccess){string Text = "通讯成功";}} }
2.4 控制电机运动
//正方向移动
private void motor1jog_positive(){string ans = null ;PMAC.GetResponse(pmacNumber, "#1j+", out ans);
}//负方向移动
private void motor1jog_ negative(){string ans = null ;PMAC.GetResponse(pmacNumber, "#1j-", out ans);
}//停止
private void motor1jog_stop(){string ans = null ;PMAC.GetResponse(pmacNumber, "#1j/", out ans);
}//移动到特定位置
private void motor1jog_position(double p){string ans = null ;command = "#1j="+Convert.ToString(p);PMAC.GetResponse(pmacNumber, command, out ans);
}
2.5 读取变量
// 读取变量private void readPMAC(string readVariable){string pmacAnswer = null;string readVariable = null;int pmacStatus = 0;PMAC.GetResponseEx(pmacNumber, readVariable, true, out pmacAnswer,out pmacStatus);}
2.6 下载文件
// 下载文件private void download_Click(object sender, EventArgs e){string fileDirectory = null;bool downloadSuccess = false;OpenFileDialog ofd = new OpenFileDialog();ofd.Title = "打开PMAC文件";ofd.Filter = "ASCII 文件 | *.txt;*.pmc";if (ofd.ShowDialog() == DialogResult.OK){fileDirectory = ofd.FileName;PMAC.Download(pmacNumber, fileDirectory, false, false, true, true, out downloadSuccess);if (downloadSuccess){string.Text = "下载成功";}else {string.Text = "下载失败";}}}
2.7 读取电机编码盘位置信息
//读取电机编码盘位置信息public void double GetPosition(){if (PMAControl.openPmacSuccess){int pmacStatus = 0;//M211指向编码盘信息存储位置PMAC.GetResponseEx(0, "M211“, true, out string pmacAnswer, out pmacStatus);string actual_position = PMAC.RequirePMAC(command);//string x_ScaleFactor = read_pmac("I108");double PDouble = Convert.ToSingle(actual_position); position = PDouble / 96 / 32;}}
2.8 设置电机速度
public void SetSpeed(string Speed){string jogspeed = string.Concat("I122=",Speed);PMAC.GetResponse(pmacNumber, jogspeed, out string ans);}
【PMAC】Chapter4:PMAC的C#开发相关推荐
- Pmac联合QT开发入门指南
Pmac联合QT开发入门指南 1.Pcommserver介绍 2. 获取PcommServer.exe 3. 通过QT的dumpcp工具生成COM组件 4. QTcreator中操作 4.1 与PMA ...
- 【PMAC学习笔记——第0篇】初识PMAC运动控制卡以及 Microsoft Visual C++ 2019,PeWin32 PRO2环境搭建
一.PMAC概述 PMAC ( Programmable Multi-Axis Controller) 可编程多轴运动控制器,是美国Delta Tau Data System 公司推出的PC 机平台上 ...
- 1.PMAC卡-简介和预备知识
PMAC卡是功能非常强大的运动控制卡,但是网上PMAC的教程很少,仅有的几个教程还是官网培训教程,罗列概念和记流水账,最不喜欢这样的教程.自己学习PMAC卡的时候走了许多弯路,刚好找完工作就写一下PM ...
- PMAC简介和预备知识
文章转自:http://blog.csdn.net/wenzhou1219 PMAC卡是功能非常强大的运动控制卡,但是网上PMAC的教程很少,仅有的几个教程还是官网培训教程,罗列概念和记流水账, ...
- WSN(3)(1):第三章 无线传感网络的通信与组网
通常传感器节点的通信覆盖范围只有几十米到几百米,人们要考虑如何在有限的通信能力条件下,完成探测数据的传输.无线通信是传感器网络的关键技术之一.所以我们下面介绍WSN在物理层技术.MAC协议.路由协议. ...
- 局域网arpsniffer源码剖析
代码是别人写的,我重构了一下,加了点注释,亲测可用. arp.h #pragma once//netbios服务根据ip解析MAC是需要用的结构体 typedef struct _ASTAT {ADA ...
- python常用小脚本总结
日常生活中常会遇到一些小任务,如果人工处理会很麻烦. 用python做些小脚本处理,能够提高不少效率.或者可以把python当工具使用,辅助提高一下办公效率.(比如我常拿python当计算器,计算和字 ...
- 无线探针的原理及代码实现
无线探针的原理及代码实现 前言:随着无线的普及,很多终端现在都支持无线功能,无线网关设备也是随处可见,我们可以通过收集ap周边的sta信息,在大数据时代,当支持这种带收集sta信息功能的设备达到一定的 ...
- WINCE 实现WIFI连接功能(WZC)
利用微软自带的WZC函数来重新编写一个独立于系统的WIFI连接程序. 本人实际操作后,实现扫描,连接等等功能.但是WINCE系统确实是太久远的系统了,此篇文章也是供大家了解一下,WINCE下自带的WI ...
最新文章
- 利用Spring的aop原理实现系统级日志管理 附带源码
- DeepLearning tutorial(4)CNN卷积神经网络原理简介+代码详解
- 视图、触发器、事务、存储过程、函数
- 选择company回显appname
- Elasticsearch搜索引擎:ES的segment段合并原理
- Android判断应用或Activity是否存在
- 匈牙利命名法为何被淘汰_为何甲烷的习惯命名法用甲烷而不是一烷?
- (转)RabbitMQ学习之消息可靠性及特性
- div 位于屏幕正中间_折叠屏已经不新鲜了,明天你可能会用上“伸缩屏幕”!...
- android sdk 环境签名,gradle打包APK,并使用jarsigner签名
- 米莱迪机器人加物理攻击_自拍、航拍、运动拍“ALL IN ONE”,臻迪PowerEgg X开启全新未来...
- MSF+APK注入绕过手机防护上线远控及安全防护建议
- Bugku Misc (1—28)
- ong拼音汉字_汉语拼音ong的发音方法
- Vue运行环境及淘宝镜像(cnpm命令)安装
- 谷歌大脑创始成员辞职,他也和Jeff Dean闹掰了
- js 事件绑定传入自定义参数
- JRebel and XRebel idea热部署插件的使用
- 夏至日环食奇趣天象将在中国天空上演 错过再等十年
- PR片头模板 3D全息数字扫描大脑后展示logo开场片头PR模板
热门文章
- css背景图片高斯模糊_如何将网页CSS背景图高斯模糊且全屏显示
- 问题步骤记录器——Windows系统下自带的录屏神器?
- 苹果手机用stream获取wskey
- 玩乐|杭州夏季纳凉好去处
- Java实现求质数(素数)
- 解决IDEA-not allow to run in parallel
- python飞机大战联网版_Python实现飞机大战(搞怪)游戏!这是你没见过的全新版本!...
- DBA之路:小小DBA一年工作总结
- 未连接到互联网 代理服务器出现问题,或者地址有误。
- [LeetCode] 300 最长递增子序列 及返回这一子序列