工控设备调试需要可视化的界面上位机来调试下位机的传感器,电机,单步动作等.上位机调试软件可以是工业触摸屏或者是工控机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");
}
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
传感器
+关注
关注
2526文章
48093浏览量
740085 -
电机
+关注
关注
139文章
8312浏览量
142099 -
工控
+关注
关注
6文章
184浏览量
27842 -
下位机
+关注
关注
0文章
78浏览量
18609
发布评论请先 登录
相关推荐
单片机串口模块调试方法
笔者在调试某Cortex-M3内核单片机时遇到一个问题,此单片机不具备在线仿真功能,因此调试代码时只能使用UART输出Log的方式调试。
发表于 07-28 15:48
•1002次阅读
用单片机和工控机无法直接通信怎么解决?
今天用stm32串口转232和工控机通信时,通过笔记本的串口助手与单片机和工控机通信时都很正常,收发都没有问题;但是一用单片机和工控机直接通
发表于 01-19 07:02
单片机开发调试应注意的问题
单片机开发调试应注意的问题
1、使用总线不外引的单片机
·是最正统的单片机使用模式
·符合小型、简单、可靠、廉价的单片机设计初衷
发表于 03-26 12:30
•1638次阅读
单片机开发调试工具有哪些?
单片机的调试是一个有条不紊的过程,用于查找和减少单片机程序中的错误数量,使其按预期工作。有时候,单片机程序调试很困难,因为某一个系统模块中的
评论