大致情况:旋转轴接了一个变频器,固高给旋转轴脉冲会给到变频器控制旋转轴转动,反馈是用的编码器,旋转轴转一圈编码器反馈4万
需要实现:打算用固高的二维位置比较功能输出进行HSIO输出,滚筒轴相当于一个矩形的高度,平移轴相当于一个矩形的宽度,然后滚筒轴转一圈编码器刚好反馈4万,上面有很多要输出HSIO的点,滚筒轴转一圈,平移轴刚好向正方向移动400脉冲(10000脉冲为1毫秒、相当于4丝)
不知道表述清楚了没有,希望有懂的帮忙解答一下,万份感谢,下面的悬赏算一点小心意,刚实习手头确实不太宽裕
大致情况:旋转轴接了一个变频器,固高给旋转轴脉冲会给到变频器控制旋转轴转动,反馈是用的编码器,旋转轴转一圈编码器反馈4万
需要实现:打算用固高的二维位置比较功能输出进行HSIO输出,滚筒轴相当于一个矩形的高度,平移轴相当于一个矩形的宽度,然后滚筒轴转一圈编码器刚好反馈4万,上面有很多要输出HSIO的点,滚筒轴转一圈,平移轴刚好向正方向移动400脉冲(10000脉冲为1毫秒、相当于4丝)
不知道表述清楚了没有,希望有懂的帮忙解答一下,万份感谢,下面的悬赏算一点小心意,刚实习手头确实不太宽裕
参考免费微信小程序:皆我百晓生 作答,经由专家-皆知整理回复,如问题解决,望采纳;如仍有疑问,请评论回复。
好的,我明白你的需求了。你想要实现的是固高卡控制下的滚筒轴和平移轴的配合运动,通过二维位置比较功能输出HSIO信号。下面是一个基于你的描述的C#代码示例,用于实现你的需求:
using System;
using System.Threading;
class Program
{
private static int滚筒轴脉冲计数 = 0;
private static int平移轴脉冲计数 = 0;
private static int滚筒轴编码器反馈 = 40000;
private static int平移轴脉冲 = 400;
private static int平移轴脉冲周期 = 10000;
static void Main(string[] args)
{
Console.WriteLine("固高卡控制程序开始运行...");
// 模拟固高卡接收脉冲信号
while (true)
{
Thread.Sleep(1); // 模拟1毫秒的延迟
// 模拟滚筒轴和平移轴接收脉冲信号
滚筒轴脉冲计数++;
平移轴脉冲计数++;
// 判断滚筒轴是否转一圈
if (滚筒轴脉冲计数 >= 滚筒轴编码器反馈)
{
滚筒轴脉冲计数 = 0;
Console.WriteLine($"滚筒轴转一圈,当前位置: {滚筒轴脉冲计数}");
// 判断平移轴是否移动400脉冲
if (平移轴脉冲计数 >= 平移轴脉冲)
{
平移轴脉冲计数 = 0;
Console.WriteLine($"平移轴移动400脉冲,当前位置: {平移轴脉冲计数}");
// 输出HSIO信号
OutputHSIO();
}
}
}
}
private static void OutputHSIO()
{
// 模拟输出HSIO信号
Console.WriteLine("HSIO信号输出...");
// 这里可以添加实际的HSIO输出代码
}
}
代码说明:
滚筒轴脉冲计数 和 平移轴脉冲计数 分别用于记录滚筒轴和平移轴的脉冲计数。滚筒轴编码器反馈 表示滚筒轴转一圈的编码器反馈值,这里设置为4万。平移轴脉冲 表示平移轴每次移动的脉冲数,这里设置为400。平移轴脉冲周期 表示平移轴脉冲的周期,这里设置为10000脉冲为1毫秒。你可以根据实际情况修改代码中的参数和逻辑,以适应你的具体需求。希望这个示例代码能帮助你解决问题。如果有任何其他问题,欢迎继续交流!