-Begin-
前言
最近有运动控制的学员问到这样的问题,能不能通过Modbus协议,实现运动控制卡的数据读取。
经过测试,切实可行。这里采用的是正运动的ECI1408板卡,其他品牌板卡可能不支持,具体咨询供应商。
MOdbus协议
正运动控制器支持两个存储区,分别是0区和4区。
- 0区从地址10000开始与输入 IN 口对应。
- 0区从地址20000开始与输出 OUT 口对应。
- 4区从地址10000开始对应轴 DPOS 区间。
- 4区从地址11000开始对应轴 MPOS 区间。
- 4区从地址12000开始对应轴 VP_SPEED 区间。
- 4区从地址13000开始对应模拟量DA输出区间。
- 4区从地址14000开始对应模拟量AD输入区间。
- 对于其他参数,可以采用自定义存储区0-7999来使用。
代码测试
这里以读取XYZ三轴的位置来进行测试。
- 建立连接
//Modbus通信对象
private ModbusTcp modbusTcp = new ModbusTcp();
//取消线程源
private CancellationTokenSource cts;
private void btn_Connect_Click(object sender, EventArgs e)
{
if (modbusTcp.Connect(this.txt_IPAddress.Text, Convert.ToInt32(this.txt_Port.Text)))
{
//如果连接成功,开线程读取
cts = new CancellationTokenSource();
Task.Run(() =>
{
GetMotionData();
}, cts.Token);
}
else
{
MessageBox.Show("运动控制卡连接失败", "建立连接");
}
}
- 断开连接
private void btn_DisConn_Click(object sender, EventArgs e)
{
cts?.Cancel();
modbusTcp.DisConnect();
}
- 多线程读取解析
private void GetMotionData()
{
while (!cts.IsCancellationRequested)
{
byte[] res = modbusTcp.ReadKeepReg(1, 10000, 6);
this.Invoke(new Action(() =>
{
if (res != null && res.Length == 12)
{
float[] values = FloatLib.GetFloatArrayFromByteArray(res, DataFormat.CDAB);
this.lbl_XAxis.Text = values[0].ToString();
this.lbl_YAxis.Text = values[1].ToString();
this.lbl_ZAxis.Text = values[2].ToString();
}
}));
}
}
- 测试结果如下:
上位机软件实时数据显示:
测试软件结果显示:
整体总结
本案例主要是测试了基于Modbus协议来读取运动控制卡的相关参数,这种情况主要用于第三方软件需要运动控制系统的相关数据。同时,如果后续的运动控制项目,需要提供数据给其他软件,可以将运动控制卡作为一个现成免费的ModbusTCP服务器,不仅可以传递运动控制参数,其他参数都可以实现传递。
-END-
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
控制卡
+关注
关注
2文章
58浏览量
13000 -
ModBus协议
+关注
关注
3文章
174浏览量
33385 -
数据读取
+关注
关注
0文章
8浏览量
6524
发布评论请先 登录
相关推荐
【正运动】高速高精,超高实时性的PCIe EtherCAT实时运动控制卡 | PCIE464
充分利用PC的高效数据处理和开放性特性,以及控制卡高速PWM、多维位置比较输出PSO等功能,实现出色的多轴同步控制和高速点位以及复杂的轨迹运动控制等功能,确保了
发表于 01-24 09:48
LabVIEW与运动控制卡相结合控制使用,求各路大神帮助!!!
各位大神们,有没有好的书籍或者学习资料推荐给我,是关于LabVIEW如何配合运动控制卡或者是运动控制卡的用法!!!
发表于 05-23 08:37
EtherCAT运动控制卡之ECI2820如何使用
轴直线插补、任意圆弧插补、空间圆弧、螺旋插补、电子凸轮、电子齿轮、同步跟随、虚拟轴、机械手指令等;采用优化的网络通讯协议可以实现实时的运动控制。 ECI2828系列运动
发表于 09-01 06:24
正运动ECI系列运动控制卡产品优势
,同时缩小工控机体积;
5、ECI运动控制卡内部可写部分代码,实时性要求特别高的场合也适用;
6、对于环境不好的场合,时间长了工控机容易进灰尘,ECI运动
发表于 06-13 09:44
评论