串口状态检测?急

zhutaozhi53 2003-08-11 04:26:59
串口状态检测,
我要写一个程序,检测串口的各个脚的变化,我以前是可以设置,但我不知道是怎么检测它的变化?
...全文
151 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhutaozhi53 2003-08-15
  • 打赏
  • 举报
回复
谢谢了,我已经做好了,只是检测一下各种脚的电平的状态
如果发现电平有变化,则发生事件就好了!
zhutaozhi53 2003-08-12
  • 打赏
  • 举报
回复
NowCan
能不能把你的程序说清楚一下了?》
zhutaozhi53 2003-08-12
  • 打赏
  • 举报
回复
GetCommModemStatus

我用了,取出来的状态好像没有变化过。
是用EscapeCommFunction设置的。
Jagen在路上 2003-08-11
  • 打赏
  • 举报
回复
GetCommModemStatus
参看MSDN它的调用方式
NowCan 2003-08-11
  • 打赏
  • 举报
回复
WaitCommEvent

EV_BREAK A break was detected on input.
* EV_CTS The CTS (clear-to-send) signal changed state.
* EV_DSR The DSR (data-set-ready) signal changed state.
EV_ERR A line-status error occurred. Line-status errors are CE_FRAME, CE_OVERRUN, and CE_RXPARITY.
* EV_RING A ring indicator was detected.
* EV_RLSD The RLSD (receive-line-signal-detect) signal changed state.
EV_RXCHAR A character was received and placed in the input buffer.
EV_RXFLAG The event character was received and placed in the input buffer. The event character is specified in the device's DCB structure, which is applied to a serial port by using the SetCommState function.
EV_TXEMPTY The last character in the output buffer was sent.

Reference from MSDN.

Monitoring Communications Events
The following example code opens the serial port for overlapped I/O, creates an event mask to monitor CTS and DSR signals, and then waits for an event to occur. The WaitCommEvent function should be executed as an overlapped operation so the other threads of the process cannot perform I/O operations during the wait.

HANDLE hCom;
OVERLAPPED o;
BOOL fSuccess;
DWORD dwEvtMask;

hCom = CreateFile( "COM1",
GENERIC_READ | GENERIC_WRITE,
0, // exclusive access
NULL, // no security attributes
OPEN_EXISTING,
FILE_FLAG_OVERLAPPED,
NULL
);

if (hCom == INVALID_HANDLE_VALUE)
{
// Handle the error.
}

// Set the event mask.

fSuccess = SetCommMask(hCom, EV_CTS | EV_DSR);

if (!fSuccess)
{
// Handle the error.
}

// Create an event object for use in WaitCommEvent.

o.hEvent = CreateEvent(
NULL, // no security attributes
FALSE, // auto reset event
FALSE, // not signaled
NULL // no name
);

assert(o.hEvent);

if (WaitCommEvent(hCom, &dwEvtMask, &o))
{
if (dwEvtMask & EV_DSR)
{
// To do.
}

if (dwEvtMask & EV_CTS)
{
// To do.
}
}
winapp 2003-08-11
  • 打赏
  • 举报
回复
HANDLE h = INVALID_HANDLE_VALUE;
AnsiString Comname = "\\\\.\\COM1";
h = CreateFile( Comname.c_str(),GENERIC_READ | GENERIC_WRITE,0,0,OPEN_EXISTING,FILE_aTTRIBUTE,0);
if ( h = INVALID_HANDLE_VALUE )
{
DWORD erro = ::GetLastErro();
if (erro != 2)
Label1->Caption = "未使用!";
}
else
Label1->Caption = "使用中!";
CloseHandle(h);
目录 IRC5控制柜的认识 机器人本体的认识 转数计数器更新 定义工具坐标系 定义工件坐标系 Load data操作步骤 定义I/O总线 定义I/O单元 定义I/O信号 基本指令 off( )功能 程序的编辑 机器人培训 ABB机器人基础知识培训全文共80页,当前为第1页。 一、IRC5控制柜的认识 安全控制板 控制柜操作面板上的停开关、TPU上的停按钮和外部的一些安全信号由安全板处理 轴计算机 该计算机不保存数据,机器人本体的零位和机器人当前位置的数据都由轴计算机处理,处理后的数据传送给主计算机 ABB机器人基础知识培训全文共80页,当前为第2页。 I/O供电装置 驱动装置 驱动装置接受到主计算机传送的驱动信号后,驱动机器人本体 该装置给I/O单元、用户自定义板供电 一、IRC5控制柜的认识 ABB机器人基础知识培训全文共80页,当前为第3页。 接收处理机器人运动数据和外围信号,将处理的信号发送到各单元 主计算机 一、IRC5控制柜的认识 ABB机器人基础知识培训全文共80页,当前为第4页。 电源分配器 接触器 供电模块 给电源分配器提供24VDC 给各主计算机、安全控制板、轴计算机、TPU等分配24VDC(需24VDC的用电装置) 刹车和驱动接通220VAC和380VAC 一、IRC5控制柜的认识 ABB机器人基础知识培训全文共80页,当前为第5页。 给接触器提供电源及相关逻辑信号 接触器板 一、IRC5控制柜的认识 ABB机器人基础知识培训全文共80页,当前为第6页。 二、机器人本体的认识 1、机械手是由六个转轴组成六杆开链机构,理论上可达运动范围内空间任何一点。 2、六个转轴均有AC伺服电机驱动,每个电机后均有编码器 3、每个转轴均带一个齿轮箱,机械手运动精度(综合)达正负0.05MM至正负0.2MM 4、机械人必须带有24VDC.(机器人配置) 机械手带有平衡气缸或弹簧 ABB机器人基础知识培训全文共80页,当前为第7页。 二、IRC5控制柜的认识 手动松闸按钮 串口测量板(SMB) 串口测量板有六节1.2V的锂电池,保存数据时供电作用 机械手带有手动松闸按钮,维修时使用,非正常使用会造成设备或人员被伤害 ABB机器人基础知识培训全文共80页,当前为第8页。 三、更新转数计数器 转数计数器用来告诉电机轴在齿轮箱中的转数,此值丢失机器人不能运行任何程序 更新转数计数器时,手动操作6个轴到同步标记位置上(标准位置有划线标记或者有卡尺标记,不同型号的机器人位置不同) 更新转数计数器时,如位置狭小,可以逐轴更新 更新转数计数器时,检查是否在正确的位置上更新 更新转数计数器时,没有在位置上更新会导致定位不准确,以致造成伤害 ABB机器人基础知识培训全文共80页,当前为第9页。 单击ABB,点击校准 检查校准状态(黄色为状态处) 未校准 三、更新转数计数器 ABB机器人基础知识培训全文共80页,当前为第10页。 把六根轴摇到位置处(0位),查看本体机械零位,是否在正确位置 单击 未校准 未校准 三、更新转数计数器 ABB机器人基础知识培训全文共80页,当前为第11页。 点击 再点击 再次点击 三、更新转数计数器 ABB机器人基础知识培训全文共80页,当前为第12页。 在方框内画 点击OK 点击 见到方框里全部 再点击 三、更新转数计数器 ABB机器人基础知识培训全文共80页,当前为第13页。 点击 再点击 三、更新转数计数器 ABB机器人基础知识培训全文共80页,当前为第14页。 四、定义工具坐标系 点击ABB菜单,选择Program data 选择数据tooldata 注意:确认是在手动模式 ABB机器人基础知识培训全文共80页,当前为第15页。 点击新建(new)出现弹出下面窗口,在窗口name处可修改命名(TOOL1),其它为默认,点击OK 四、定义工具坐标系 ABB机器人基础知识培训全文共80页,当前为第16页。 双击tool1,直接进入编辑窗口,输入工具的重量 Mass:工具重量 Kg Cog: 工具重心 mm 四、定义工具坐标系 ABB机器人基础知识培训全文共80页,当前为第17页。 选择新建工具坐标(蓝色光标),点击Edit,弹出窗口,选择定义 选择定义TCP的方向 四、定义工具坐标系 ABB机器人基础知识培训全文共80页,当前为第18页。 在Method处选择做TCP的点数,手动操纵机器人,使TCP点和定点相碰,使用功能键 修改位置 记录机器人相应位置,OK 键确认。 四、定义工具坐标系 ABB机器人基础知识培训全文共80页,当前为第19页。 手动移动机器人,使TCP点和定点相碰。 使用 重定位运动(姿态运动)模式来检验工具坐标系。 偏差最好在1以下,越接近0最好 红色选择你新建的工具坐标 tool1 检测

1,317

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 网络及通讯开发
社区管理员
  • 网络及通讯开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧