中小企业网站制作流程,网站建设公司人员组成,网页设计代码模板网站,广告设计公司专业报价表本文导读
今天#xff0c;正运动小助手给大家分享一下如何使用C#上位机编程实现运动控制卡网络通讯的心跳检测功能。
01 ECI2618B硬件介绍
ECI2618B经济型多轴运动控制卡是一款脉冲型、模块化的网络型运动控制卡。控制卡本身最多支持6轴#xff0c;可扩展至12轴的运动控制…本文导读
今天正运动小助手给大家分享一下如何使用C#上位机编程实现运动控制卡网络通讯的心跳检测功能。
01 ECI2618B硬件介绍
ECI2618B经济型多轴运动控制卡是一款脉冲型、模块化的网络型运动控制卡。控制卡本身最多支持6轴可扩展至12轴的运动控制用以实现直线插补、任意圆弧插补、空间圆弧、螺旋插补、电子凸轮、电子齿轮、同步跟随、虚拟轴以及机械手指令等简单的轨迹控制需求采用优化的网络通讯协议可以实现实时的运动控制。
ECI2618B控制卡功能特点 1本身支持6差分脉冲轴4单端脉冲轴运动控制最多可扩展至12轴运动控制。 2脉冲输出模式脉冲/方向或双脉冲。 3AXIS接口支持编码器位置测量可以配置为手轮输入模式。 4专用的手轮输入接口。 5每轴最大输出脉冲频率10MHz。 6通过CAN总线最多可扩展到256个隔离输入口和256个隔离输出口。 7轴正负限位信号口/原点信号口可以随意配置到任何输入口。 8通用数字输出口最大输出电流可达500mA可直接驱动部分电磁阀。 9支持点位运动、电子凸轮、直线插补、圆弧插补、连续插补运动、机械手指令。 10支持Basic多文件多任务编程。 11多种程序加密手段保护客户的知识产权。
ECI2000系列经济型多轴运动控制卡可用于电子半导体设备检测类设备、组装类设备、锁附类设备、焊锡机、点胶设备和流水线等12轴以内脉冲应用场合。 控制器支持windows、linux、Mac、Android、wince各种操作系统下的开发提供vc、c#、vb.net、labview等各种环境的dll库如下图。上位机软件编程参考《ZMotion PC函数库编程手册》。
02 为什么要进行心跳检测作用是什么
1.实时监测 通过检测上位机与下位机的通信状态可以实时监测上位机是否正常连接和通讯。一旦发现上位机掉线系统可以及时采取相应的应对措施避免因为掉线导致通讯中断或数据丢失。 2.系统稳定性 上位机是控制系统的核心部分掉线可能会导致整个系统失去控制。掉线检测可以保障系统的稳定性及时发现掉线情况并进行处理保持系统正常运行。 3.数据完整性 上位机通常负责与用户界面交互、数据处理和决策数据的完整性对系统运行至关重要。通过掉线检测系统可以及时发现掉线情况保证数据的完整性和准确性。 4.故障诊断 掉线检测可以作为系统故障诊断的一种手段通过监测上位机的状态可以帮助确定系统出现问题的具体原因加快故障排查和修复的速度。
03 BASIC语言进行心跳检测脚本语言编写
一前情提要 心跳检测的实现主要是两个部分组成 1.上位机周期修改变量 2.控制器程序周期检测变量并在掉线的时候执行一些急停操作。 在示例中上位机程序会周期修改Heart_Status控制器程序会周期扫描Heart_Status并在检测到变量的值异常的时候打开输出口模拟掉线急停的操作。 流程图如下所示
二创建变量
**************************心跳相关变量定义************************
Global Heart_StarFlag 开始通讯标识变量
Global Heart_Status 通讯标识变量
Global Heart_Time 心跳超时时间
Global Heart_OutNum 急停OP数量
Global OutList_Address 急停OUTmodbus_long起始地址(Ps:3系列以下自定义变量为24位浮点数32位精度丢失用modbus_long来代替)
GLOBAL CONST cVerCONTROL
Heart_StarFlag -1
Heart_Status 0
Heart_OutNum 10
OutList_Address 0
dim i,j
三开启扫描 扫描流程 1.等待上位机发送扫描开始指令 2.根据控制器信号进入不同扫描程序原理一样只是实现略有不同 3.将通讯标识变量置1 4.等待一个超时时间 5.判断通讯标识 6.如果为1表示上位机没有进行通讯掉线状态。进行掉线保护操作 7.为0表示进行通讯正常状态。开启下一次扫描。
WHILE TRUEWAIT until Heart_StarFlag 1 等待PC软件连接DELAY Heart_Time PC连接之后延时一个超时时间避免上位WHILE TRUEif Heart_Status 0 then Heart_Status 1 等待PC上修改通讯变量ticks Heart_Time 超时判断处理等待PC上修改Heart_Flag 0WAIT until ticks 0 or Heart_Status0if Heart_Status 1 THENRAPIDSTOP(2)WAIT IDLEOP(0,31,MODBUS_LONG(OutList_Address)) MODBUS_LONG存储32位整型按位控制掉线急停IOHeart_StarFlag-1Heart_Status 0 ELSEOP(0,31,0)EndifWEND
WEND
end 04 C#语言进行心跳检测开发
一新建WinForm项目并添加函数库 1.在VS2010菜单“文件”→“新建”→“项目”启动创建项目向导。
2.选择开发语言为“Visual C#”和.NET Framework 4以及Windows窗体应用程序。
3.找到厂家提供的光盘资料里面的C#函数库路径如下32位库为例。 1进入厂商提供的光盘资料找到“04PC函数”文件夹并点击进入。
2选择“01PC函数库V2.1”文件夹。
3选择“windows平台”文件夹。
4根据需要选择对应的函数库这里选择32位库。
5解压C#压缩包,里面有C#对应的函数库。
6函数库具体路径如下。
4.将厂商提供的C#的库文件以及相关文件复制到新建的项目中。 1将Zmcaux.cs文件复制到新建的项目里面中。
2将zauxdll.dll和zmotion.dll文件放入bin\debug文件夹中。
5.用vs打开新建的项目文件在右边的解决方案资源管理器中点击“显示所有文件”然后鼠标右击Zmcaux.cs文件点击“包括在项目中”。
6.双击Form1.cs里面的Form1出现代码编辑界面在文件开头写入using cszmcaux并声明控制器句柄g_handle。
二PC函数介绍 1.PC函数手册可在光盘资料查看具体路径如下。
2.链接控制器获取链接句柄。
3.下载并运行控制器程序。
4.设置控制器程序参数。
05 C#例程建设之网络通讯的心跳检测
一前情提要 上位机软件的主要功能 1.下载并运行控制器程序 2.设置扫描参数 3.开启和关闭心跳检测 4.设置急停IO。 界面如下图所示
二例程讲解 1.连接控制器获取句柄上位机操作通过获取到的句柄来操作控制器。
//连接控制器,控制器默认IP是192.168.0.11
ZauxErr zmcaux.ZAux_OpenEth(192.168.0.11, out g_Handle);
if (0 ! ZauxErr)
{AlmInifFile.Write(DateTime.Now.ToString(F), ZAux_OpenEth执行错误,错误码: ZauxErr.ToString(), 错误码信息);
}2.下载心跳bas程序 函数介绍 通过OpenFileDialog获取控制器程序路径然后通过openFile判断文件是否为空最后通过ZAux_BasDown将控制器程序下载到控制器。
private void btnFile_Click(object sender, EventArgs e)
{string m_strOpenFileName;FileStream openFile;OpenFileDialog fileOpen new OpenFileDialog();fileOpen.Filter Basic Files (*.bas)|*.bas|All Files (*.*)|*.*;fileOpen.RestoreDirectory true;fileOpen.FilterIndex 1;if (fileOpen.ShowDialog() DialogResult.OK){m_strOpenFileName fileOpen.FileName;try{openFile new FileStream(fileOpen.FileName, FileMode.Open, FileAccess.Read);openFile.Close();}catch (Exception ex){MessageBox.Show(Open Failed!);return;}ret zmcaux.ZAux_BasDown(g_handle, m_strOpenFileName, 0);controlReturnQue.Enqueue(ret);if (ret 0)MessageBox.Show(心跳程序已成功加载);}
}3.启动心跳检测 函数介绍 首先通过SetTimeOutPara设置扫描参数然后ZAux_Direct_SetUserVar设置Heart_StarFlag心跳标示变量。启动控制器扫描程序随后开启上位机扫描程序。
private void btnStart_Click(object sender, EventArgs e)
{SetTimeOutPara();ret zmcaux.ZAux_Direct_SetUserVar(g_handle, Heart_StarFlag, 1);controlReturnQue.Enqueue(ret);timeOut 0;timer1.Enabled true;timer1.Interval int.Parse(tbxUpTimer.Text);tbState.Text 已启动;
}
//上位机扫描程序
private void timer1_Tick(object sender, EventArgs e)
{ret zmcaux.ZAux_Direct_SetUserVar(g_handle, Heart_Status, 0);controlReturnQue.Enqueue(ret);if (ret ! 0)timeOut;if (timeOut 1){tbState.Text 未启动;timer1.Stop();}
}4.RTSys的使用 1打开【RTSys】软件点击【连接】输入控制器的IP默认IP192.168.0.11。
2打开输出口界面即可通过输出口观察是否掉线。
三教学视频 教学视频可点击→“教学视频运动控制卡网络通讯的心跳检测之C#上位机编程”查看。
本次正运动技术运动控制卡网络通讯的心跳检测之C#上位机编程就分享到这里。
本文由正运动技术原创欢迎大家转载共同学习一起提高中国智能制造水平。文章版权归正运动技术所有如有转载请注明文章来源。