单片机的工控调试

描述

工控设备调试需要可视化的界面上位机来调试下位机的传感器,电机,单步动作等.上位机调试软件可以是工业触摸屏或者是工控机windows的mfc winform之类的软件.下位机可以是单片机工控威廉希尔官方网站 板或者是PLC。这种上位机和下位机的关系与PC与服务器的关系类似.PC与服务器的软件架构有C/S,B/S两种,上位机(服务器)和下位机(服务器)软件架构也有这两种.

  • C/S架构

C/S架构在服务器和PC端都要写程序和维护。QQ之类的软件就是这种架构。对于PC端程序开发,开发者需要学习VS/QT,熟悉C++或者C#,串口网络编程,多线程UI美化等,学习成本相当高,招人也不好招聘。对于每个项目都是拖拽一些按钮编辑框到界面,在事件处理函数发送串口网络数据给下位机.

  • B/S架构

B/S架构只要在单片机端写程序.电机中文名称,传感器名称,动作名称,参数名称都写在单片机软件,单片机上电初始化时需要将中文名称和电机传感器动作编号绑定。PC端浏览器软件连接到单片机后就把名称和编号获取过来,然后界面动态绘制按钮,编辑框等.

单片机代码:

enum
{
  SM_BELT=0,  //轴1 皮带转动
  SM_SUCK,    //轴2 吸盘运动步进点  
};


enum
{
  SN_BELT_ORG=0,
  SN_SUCK_ORG,
  SN_SUCK_LIMT,
 };
 
 enum 
 {
   ACTION_MOVE_BELT=1,
   ACTION_RESET_SUCK,
 };
 
 //皮带走动
 start(MoveBelt):
  l->FindSensor(SM_BELT,1600,SN_BELT_ORG,STEP_OK,STEP_ERROR);
step_error:
  l->SetErrorInfo("SM101皮带电机堵转丢步-X101");
step_ok:
  l->StopSM(SM_BELT);
end_ok


 //吸盘复位
start(ResetSuck):
  l->FindSensor(SM_SUCK,-9000,SN_SUCK_ORG,STEP_OK,STEP_ERROR);
step_error:
  l->SetErrorInfo("SM102吸盘电机堵转丢步-X102");
step_ok:
  l->StopSM(SM_SUCK);
end_ok

void InitApp()
{
//将动作编号1和函数MoveBelt绑定,上位机会绘制一个按钮,名称皮带移动
//当电机按钮发送数据包给下位机,数据包的参数有1,下位位机收到参数1找到MoveBeltt
//执行
  l->AddAction(ACTION_MOVE_BELT,MoveBelt,"皮带移动");
  l->AddAction(ACTION_RESET_SUCK,ResetSuck,"吸盘复位");
  
  //电机
  l->AddSMNode(SM_BELT,"SM101皮带");
  l->AddSMNode(SM_SUCK,"SM102吸盘");
  
  l->SetPrjName("临时测试");
  l->SetVersion("V1.1");
}

上面的代码即完成了下位机的控制逻辑,又在初始化时完成项目的电气部件及动作信息的显示.上位机连接后显示界面如下 :

电机

电机

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分