我想试试编程用C#来控制雕刻机动作,查到有方法让并口输...
查到有方法可以让并口输出高低电平,但是假如我想让其输出PWM波脉宽。有什么方法不?软件定时器?貌似不准 接个单片机,给单片机发指令让单片机去实现PWM脉宽。 有运动控制卡,不过价格有点贵 使用winapi可以操作的, 如果使用LabVIEW的话,有封装好的端口操作VI,非常方便 mmiker 发表于 2015-11-18 08:38
接个单片机,给单片机发指令让单片机去实现PWM脉宽。
我想让上位机操控雕刻机,雕刻机也算是三轴平台。我想让键盘来操控其运动 PC并行口各阵脚定义:
1.选通,PC->Printer
2-9 数据(D0-D7)
10.应答(ACK),Printer->PC
11.忙(BUSY),Printer->PC
12.无纸(PE),Printer->PC
13.联机(SLCT),Printer->PC
14.自动换行(AUTO FD),PC->Printer
15.错误(ERROR),Printer->PC
16.初始化(INIT),PC->Printer
17.选择输出(SELECT IN),PC->Printer
18.-25.地(GND)
并口针脚定义
并口开机时默认状态:
除了C3(17)针及地线外,全部为高;
并口输出输入规则:
DataPort 地址0x378 8个针脚(D0-D7) 正常,写入0输出低电平,写入1则输出高电平;
ContorlPort地址0x37A4个针脚(C0-C3) C2正常,C0、C1、C3取反-----写入0输出高,写入1则输出低;读取同理;
StatePort 地址0x379 5个针脚(S3-S7) S7取反,其他正常;
PC并口的8位DataPort 、4位ContorlPort都可以作为数字输出端口,两个端口可以组成1~12位的任意数字输出端口;而这4位StatePort、5位ContorlPort 都可以作为数字输入端口,状态端口共5位,控制端口共4位,两个端口可以组成1~9位的任意数字输入端口。
using System;
using System.Runtime.InteropServices;
public class PortAccess
{
public static extern void Output(int adress, int value);
public static extern int Input(int adress);
}
//Output函数为给端口传送数据,Input是从端口读取数据 如:
PortAccess.Input( 888 );//从888(即0x378)端口读取数据
PortAccess.Output( 888, 4 )//把4从888端口输出
foxpro2005 发表于 2015-11-18 08:44
使用winapi可以操作的, 如果使用LabVIEW的话,有封装好的端口操作VI,非常方便 ...
实时性和波形精度能保证吗 yuyu87 发表于 2015-11-18 08:56
PC并行口各阵脚定义:
1.选通,PC->Printer
这个我看到过,只是输出高低电平,如果输出脉宽呢 程序自己设高,或设低,定时,
只有这个办法啦,然后把你的程序权限提高,类似任务管理器,进程,右键的, 用VC写个dll 用C#去调用 脉宽 ??????????
运动控制卡和脉宽没有关系,要的是频率 还是上USB3.0吧 win不是实时系统,产生的波形时间误差很大的,还是接个单片机比较简单,而且万一出了问题不会损坏PC机 ly8008csko 发表于 2015-11-18 09:57
win不是实时系统,产生的波形时间误差很大的,还是接个单片机比较简单,而且万一出了问题不会损坏PC机 ...
嗯是的 RAMILE 发表于 2015-11-18 09:45
脉宽 ??????????
运动控制卡和脉宽没有关系,要的是频率
嗯是的 频率说错了 去买个moons的电机,直接串口文本命令控制
页:
[1]