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#开发相关推荐

  1. Pmac联合QT开发入门指南

    Pmac联合QT开发入门指南 1.Pcommserver介绍 2. 获取PcommServer.exe 3. 通过QT的dumpcp工具生成COM组件 4. QTcreator中操作 4.1 与PMA ...

  2. 【PMAC学习笔记——第0篇】初识PMAC运动控制卡以及 Microsoft Visual C++ 2019,PeWin32 PRO2环境搭建

    一.PMAC概述 PMAC ( Programmable Multi-Axis Controller) 可编程多轴运动控制器,是美国Delta Tau Data System 公司推出的PC 机平台上 ...

  3. 1.PMAC卡-简介和预备知识

    PMAC卡是功能非常强大的运动控制卡,但是网上PMAC的教程很少,仅有的几个教程还是官网培训教程,罗列概念和记流水账,最不喜欢这样的教程.自己学习PMAC卡的时候走了许多弯路,刚好找完工作就写一下PM ...

  4. PMAC简介和预备知识

     文章转自:http://blog.csdn.net/wenzhou1219 PMAC卡是功能非常强大的运动控制卡,但是网上PMAC的教程很少,仅有的几个教程还是官网培训教程,罗列概念和记流水账, ...

  5. WSN(3)(1):第三章  无线传感网络的通信与组网

    通常传感器节点的通信覆盖范围只有几十米到几百米,人们要考虑如何在有限的通信能力条件下,完成探测数据的传输.无线通信是传感器网络的关键技术之一.所以我们下面介绍WSN在物理层技术.MAC协议.路由协议. ...

  6. 局域网arpsniffer源码剖析

    代码是别人写的,我重构了一下,加了点注释,亲测可用. arp.h #pragma once//netbios服务根据ip解析MAC是需要用的结构体 typedef struct _ASTAT {ADA ...

  7. python常用小脚本总结

    日常生活中常会遇到一些小任务,如果人工处理会很麻烦. 用python做些小脚本处理,能够提高不少效率.或者可以把python当工具使用,辅助提高一下办公效率.(比如我常拿python当计算器,计算和字 ...

  8. 无线探针的原理及代码实现

    无线探针的原理及代码实现 前言:随着无线的普及,很多终端现在都支持无线功能,无线网关设备也是随处可见,我们可以通过收集ap周边的sta信息,在大数据时代,当支持这种带收集sta信息功能的设备达到一定的 ...

  9. WINCE 实现WIFI连接功能(WZC)

    利用微软自带的WZC函数来重新编写一个独立于系统的WIFI连接程序. 本人实际操作后,实现扫描,连接等等功能.但是WINCE系统确实是太久远的系统了,此篇文章也是供大家了解一下,WINCE下自带的WI ...

最新文章

  1. 利用Spring的aop原理实现系统级日志管理 附带源码
  2. DeepLearning tutorial(4)CNN卷积神经网络原理简介+代码详解
  3. 视图、触发器、事务、存储过程、函数
  4. 选择company回显appname
  5. Elasticsearch搜索引擎:ES的segment段合并原理
  6. Android判断应用或Activity是否存在
  7. 匈牙利命名法为何被淘汰_为何甲烷的习惯命名法用甲烷而不是一烷?
  8. (转)RabbitMQ学习之消息可靠性及特性
  9. div 位于屏幕正中间_折叠屏已经不新鲜了,明天你可能会用上“伸缩屏幕”!...
  10. android sdk 环境签名,gradle打包APK,并使用jarsigner签名
  11. 米莱迪机器人加物理攻击_自拍、航拍、运动拍“ALL IN ONE”,臻迪PowerEgg X开启全新未来...
  12. MSF+APK注入绕过手机防护上线远控及安全防护建议
  13. Bugku Misc (1—28)
  14. ong拼音汉字_汉语拼音ong的发音方法
  15. Vue运行环境及淘宝镜像(cnpm命令)安装
  16. 谷歌大脑创始成员辞职,他也和Jeff Dean闹掰了
  17. js 事件绑定传入自定义参数
  18. JRebel and XRebel idea热部署插件的使用
  19. 夏至日环食奇趣天象将在中国天空上演 错过再等十年
  20. PR片头模板 3D全息数字扫描大脑后展示logo开场片头PR模板

热门文章

  1. css背景图片高斯模糊_如何将网页CSS背景图高斯模糊且全屏显示
  2. 问题步骤记录器——Windows系统下自带的录屏神器?
  3. 苹果手机用stream获取wskey
  4. 玩乐|杭州夏季纳凉好去处
  5. Java实现求质数(素数)
  6. 解决IDEA-not allow to run in parallel
  7. python飞机大战联网版_Python实现飞机大战(搞怪)游戏!这是你没见过的全新版本!...
  8. DBA之路:小小DBA一年工作总结
  9. 未连接到互联网 代理服务器出现问题,或者地址有误。
  10. [LeetCode] 300 最长递增子序列 及返回这一子序列