如何制作脚踏开关 (四个按钮)

本文介绍了一个利用RS232串口通信的示例,通过DTR、DSR、CTS等信号线的交互实现通信状态监测。包括了VB和C++两种语言的实现方式。
AI助手已提取文章相关产品:

利用RS232的DTR(4脚,输出)、DSR(6脚,输入)和CTS(8脚,输入)   
    
  注:这里还可以用RTS(7脚)来代替DTR,而作为输入的还可以用DCD(1脚,输入)和Ring(9脚,输入)  
   
  下面的例子运行后,用一导线短接4脚和1脚、4脚和6脚、4脚和8脚、4脚和9脚。   
   VB脚本:

  Option   Explicit   
    
  
Private   Sub   Form_Load()   
          MSComm1.PortOpen   
=   True   
          MSComm1.DTREnable   
=   True   
  
End   Sub   
    
  
Private   Sub   MSComm1_OnComm()   
        
Select   Case   MSComm1.CommEvent   
              
Case   comEvCD       '   Change   in   the   CD   line.   
                  Debug.Print   "CD"   
              
Case   comEvCTS       '   Change   in   the   CTS   line.   
                  Debug.Print   "CTS"   
              
Case   comEvDSR       '   Change   in   the   DSR   line.   
                  Debug.Print   "DSR"   
              
Case   comEvRing       '   Change   in   the   Ring   Indicator.   
                  Debug.Print   "Ring"   
        
End   Select   
  
End   Sub   

 

C++脚本:(用的victor 控件)

 

AnsiString __fastcall Victor_CommDevice::CommDeviceCommNotify(int SBtn, bool Test)
{
    
//动态结构体赋值
    stcom->CTS = CurCommDevice->CTS;
    stcom
->DCD = CurCommDevice->DCD;
    stcom
->DSR = CurCommDevice->DSR;
    stcom
->Ring = CurCommDevice->Ring;
    
if ((stcom->CTS || stcom->DCD || stcom->DSR || stcom->Ring) && !down)
    { 
//每次按下只处理一次事件
        down = true;
        
try
        {
            
if (SBtn == 1)
            {
                ComFlag 
= "CTS+DCD+DSR+RLSD";
                Process();
            }
            
else if (SBtn > 1)
            {
                
if (stcom->CTS)
                {
                    ComFlag 
= "CTS";
                    CTS_Process();
                }
                
if (stcom->DCD)
                {
                    ComFlag 
= "DCD";
                    DCD_Process();
                }
                
if (stcom->DSR)
                {
                    ComFlag 
= "DSR";
                    DSR_Process();
                }
                
if (stcom->Ring)
                {
                    ComFlag 
= "Ring";
                    RLSD_Process();
                }                
                
if(Test)
                {
                    
return ComFlag;
                }
            }
        }
        
catch (Exception& e)
        {
            PMSGDLG
->ShowErrorMsg("无法指定的重载函数! 错误原因: " + e.Message);
            
if(Test)
            {
                
return "";
            }
            Abort();
        }
    }
    
else if (!stcom->CTS && !stcom->DCD && !stcom->DSR && !stcom->Ring)
    { 
//弹开或者其它自动还原数据
        down = false;
        
if(Test)
        {
            
return "";
        }
    }
}

您可能感兴趣的与本文相关内容

有一个液管扩口设备需要写PLC程序(使用梯形图)和设计触摸屏界面,PLC使用的型号是西门子Smart200(ST30、QR16、DE16、 AE04),触摸屏使用的是ProFace的GP-4502WW,设备主要结构有热风枪上升下降气缸、挡板上升下降气缸、液管夹紧气缸、一个 脉冲控制的伺服电机、三个液路气控阀、三个氮气气控阀、漏液传感器、两个压力表(模拟量)、两个按钮、两个指示灯、脚 踏开关、三个急停、四个安全门锁 设备自动运行的逻辑是 可以在触摸屏现在选择那个固定位置运行,总共有三个固定位置,可以放三种尺寸的液管3/8、1/4、1/2 1.操作人员把液管放入固定位置 2.按开始按钮或者踩脚踏开关,液管夹紧气缸下降 3.挡板气缸下降,设备开始自动运行 4.热风枪下降根据选择的固定位置加热该位置,加热一段时间 5.加热完毕热风枪上升 6.电缸前进进行扩口 7.根据选择的固定位置打开该位置的液路气控阀,打开一段时间 8.关闭液路气控阀 9.根据现在的固定位置打开该位置的氮气气控阀,打开一段时间 10关闭氮气气控阀 11.电缸后退进行自清洁 12.根据现在的固定位置打开该位置的氮气气控阀,打开一段时间,自清洁完成 13.等待操作人员踩脚踏或按按钮 14.操作人员踩脚踏或按按钮,液管夹紧气缸上升 15.设备自动运行完成 还有一个停止按钮,按一下是停止,长按3秒是复位 安全门锁打开设备停止,漏液传感器检测漏液设备停止,漏液传感器检测漏液设备无法开始运行 触摸屏的人机界面需要设计的高端一点,加上logo,需要出具体的操作步骤,需要一个参考网站 需要详细的伺服电机在PLC里面的设置
最新发布
12-03
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值