能用c#控制硬件电路吗?

YEASIR 2012-01-28 01:59:17
各位高手们,我以前学过一点c#,这次毕业设计,我需要用电脑控制电机的转动,请问哈,c#在控制硬件方面怎么样,如果能够控制的话,又该怎样具体实现呢?求助啊,各位大哥.........
...全文
730 28 打赏 收藏 转发到动态 举报
写回复
用AI写文章
28 条回复
切换为时间正序
请发表友善的回复…
发表回复
YapingXin 2012-02-01
  • 打赏
  • 举报
回复
[Quote=引用 19 楼 zanfeng 的回复:]

引用 9 楼 xinyaping 的回复:

引用 6 楼 tang233418 的回复:
厂商那里如果没有这种sdk怎么办呢?就没办法用c#开发了吗?


看7楼。

根本用不着什么厂商的SDK。RS232通信协议是公开的、统一的标准,又不是哪个厂商的专属协议。

晕。这位没搞清楚SDK是啥定义。
[/Quote]

抱歉,我确实用词不当。
YapingXin 2012-02-01
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 netteans 的回复:]

你上位机和下位机通讯的协议和232没有必然的关联吧,那也还是需要知道硬件的指令格式,不然你怎么知道发哪串1010过去控制硬件?
[/Quote]

原谅我可能用词不当。我所指的RS232的协议,我是这样理解的:
对于RS232这种接口,它的电路连接是怎样的,给每个Pin上的电压/电流的限制是怎样的,哪个电压值代表高电平、哪个电压值代表低电平、向它发送一条指令的操作序列是什么…………这些,都应该是业界标准,在我眼里这个就是协议。
足球中国 2012-02-01
  • 打赏
  • 举报
回复
不管用串口还是用红外,或者用ZigBee、用WIFI、用蓝牙……随便你用什么都行,反正上位机只要能把命令发出去就行,别的事情就不管了,具体怎么识别命令、怎么执行,那是下位机的事,跟上位机毫无关系。

你这里的命令。也就是sdk中通讯协议的一部分。
足球中国 2012-02-01
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 xinyaping 的回复:]

引用 6 楼 tang233418 的回复:
厂商那里如果没有这种sdk怎么办呢?就没办法用c#开发了吗?


看7楼。

根本用不着什么厂商的SDK。RS232通信协议是公开的、统一的标准,又不是哪个厂商的专属协议。
[/Quote]
晕。这位没搞清楚SDK是啥定义。
cdcjk 2012-02-01
  • 打赏
  • 举报
回复
学习的直接上51就成了,完全可以,通过串口方式通信即可。
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 xinyaping 的回复:]

引用 13 楼 zincy 的回复:
RS-232 是串行连接标准。 你能用它控制人家的设备?!!
胡说八道


为什么不可以控制他的设备?

串口只是一个用于通信的接口。上位机所要做的事情,仅仅是向串口发送一个指令。而下位机所要做的事情,仅仅是接收这个指令。这个指令是什么呢?随你定,你可以定义“A”指令是正转、“B”指令是反转,只要在上位机和下位机的程序里做同样的约定就可以。
……
[/Quote]

你上位机和下位机通讯的协议和232没有必然的关联吧,那也还是需要知道硬件的指令格式,不然你怎么知道发哪串1010过去控制硬件?
YapingXin 2012-02-01
  • 打赏
  • 举报
回复
[Quote=引用 24 楼 hailang466 的回复:]
上层用c#底层用c或汇编
[/Quote]

不是什么“上层”、“底层”这样的结构,而是上位机与下位机这样的结构。
上位机与下位机之间,除了通讯以外,再无任何联系。
上位机可以是PC(或者智能手机,或者另一个移动设备)。下位机是一个带电机驱动电路的单片机系统。
上位机与下位机的软、硬件平台不同,所以用的开发语言/开发工具也不同。
比如说上位机用PC或者Windows Mobile/Windows CE/Windows Phone的智能手机,那么这样的平台你当然可以用.Net来编程。
而下位机,你可以用什么样的语言/工具来开发,也是由下位机的环境决定的。下位机的Bootloader起了一个最基本的单片机操作的软环境,这个软环境主要有裸系统或者嵌入式操作系统这两种情况。(“裸系统”这个词我或许又用词不准确了,我的意思是没有OS直接靠状态机来给单片机的PIN发送高低电平的这种情况)对于“裸系统”,你需要用C/汇编生成二进制的bin文件然后烧到Flash里面。对于嵌入式OS的环境来说,这个OS支持什么样的运行环境,你就可以用什么来编程,比如说,如果你的嵌入式OS是一个embedded Linux,然后你在这个Linux系统上运行了一个BusyBox的小环境,又添加了Python的运行库,那么你也可以用Python来给下位机编程。当然理论上说是可以这样做的,你觉得方便不方便那就另说了。
GSDN00A 2012-02-01
  • 打赏
  • 举报
回复
c#可以用api调用KneralIoControl,进而控制驱动,引脚,控制电路。
YapingXin 2012-02-01
  • 打赏
  • 举报
回复
[Quote=引用 23 楼 startstartsvip 的回复:]
zigbee 又有收获
[/Quote]

ZigBee,工控领域中的一种低功耗组网技术。它可以两个节点通讯,或者多个节点组成一个网络然后在这个网络内多点通讯。见:http://baike.baidu.com/view/117166.htm
YapingXin 2012-02-01
  • 打赏
  • 举报
回复
[Quote=引用 20 楼 zanfeng 的回复:]

不管用串口还是用红外,或者用ZigBee、用WIFI、用蓝牙……随便你用什么都行,反正上位机只要能把命令发出去就行,别的事情就不管了,具体怎么识别命令、怎么执行,那是下位机的事,跟上位机毫无关系。

你这里的命令。也就是sdk中通讯协议的一部分。
[/Quote]

抱歉,我确实用词不当。硬件方面的编程我只是业余时间玩一玩,没做过什么专业的事情。

抛开我不准确的用词,我的意思实际上是这样的:

我的意思是说我不需要一个特定厂商的什么SDK,但是我以前也自己业余时间抱着玩的心态做过简单的单片机作品,也用到了串口通信,我用的是一个开源的程序库。(如果这个程序库是哪个特定的厂商提供的,那么这个就是你们所说的SDK吗?)通过这个开源的程序库,我得以向串口发送一些字节,以及接收到我所发送的内容。我自定义了几个命令,当单片机接收到这样的命令的时候,通过我自己写的encode/decode函数,解析出command header和command body,command header里面包含了要执行的功能,command body里面包含了执行这个功能所需要的参数。然后调用我自己写的函数来给电机驱动模块发送PWM信号,电机驱动模块我用了一个L298N,电机我用的是电动玩具车里面的直流减速电机。

本人硬件方面的知识很贫乏,各位见笑了。但是楼主这样的应用我也做过的,我当时实现的功能比楼主的这个需求还要复杂一些。
hailang466 2012-02-01
  • 打赏
  • 举报
回复
上层用c#底层用c或汇编
startstartsvip 2012-02-01
  • 打赏
  • 举报
回复
[Quote=引用 20 楼 zanfeng 的回复:]

不管用串口还是用红外,或者用ZigBee、用WIFI、用蓝牙……随便你用什么都行,反正上位机只要能把命令发出去就行,别的事情就不管了,具体怎么识别命令、怎么执行,那是下位机的事,跟上位机毫无关系。

你这里的命令。也就是sdk中通讯协议的一部分。
[/Quote]


zigbee 又有收获
cheniwantyou 2012-01-31
  • 打赏
  • 举报
回复
完全可以,通过串口方式通信即可。
YapingXin 2012-01-31
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 zincy 的回复:]
RS-232 是串行连接标准。 你能用它控制人家的设备?!!
胡说八道
[/Quote]

为什么不可以控制他的设备?

串口只是一个用于通信的接口。上位机所要做的事情,仅仅是向串口发送一个指令。而下位机所要做的事情,仅仅是接收这个指令。这个指令是什么呢?随你定,你可以定义“A”指令是正转、“B”指令是反转,只要在上位机和下位机的程序里做同样的约定就可以。

不管用串口还是用红外,或者用ZigBee、用WIFI、用蓝牙……随便你用什么都行,反正上位机只要能把命令发出去就行,别的事情就不管了,具体怎么识别命令、怎么执行,那是下位机的事,跟上位机毫无关系。

大侠,我说得对吗?
紫豆荚 2012-01-31
  • 打赏
  • 举报
回复
可以控制设备,一般都是通过协议进行进行操作,这个要和具体的设备有关,不同的设备方式不一样,比如电力一般是IEC104,工业控制MODBUS用的较多。
zincy 2012-01-31
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 xinyaping 的回复:]

引用 6 楼 tang233418 的回复:
厂商那里如果没有这种sdk怎么办呢?就没办法用c#开发了吗?


看7楼。

根本用不着什么厂商的SDK。RS232通信协议是公开的、统一的标准,又不是哪个厂商的专属协议。
[/Quote]

RS-232 是串行连接标准。 你能用它控制人家的设备?!!
胡说八道
zincy 2012-01-31
  • 打赏
  • 举报
回复
拿到电机的通讯协议,根据协议写好控制代码,根据电脑和电机的通讯方式写好通讯代码,
如果 电机和电脑是网络连接就用 System.Net.Sockets ,如果是通过串口就用 System.IO.Ports 命名空间
YapingXin 2012-01-31
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 dongfangmi 的回复:]
不过好像看见过用串口发送脉冲给步进电机驱动,然后驱动板带动电机的
[/Quote]

你说的这个方案,带动电机的那块驱动板,应该是一个带嵌入式操作系统的设备,否则,就没有“驱动”这一说。

我认为,除非你还涉及到其他的复杂逻辑,否则,根本用不着这样的设备。有点大材小用了。

东方迷 2012-01-31
  • 打赏
  • 举报
回复
一般是通过电脑串口或者USB口发送指令到单片机,然后单片机控制电机运动,学习的直接上51就成了。
不过好像看见过用串口发送脉冲给步进电机驱动,然后驱动板带动电机的
YapingXin 2012-01-31
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 tang233418 的回复:]
厂商那里如果没有这种sdk怎么办呢?就没办法用c#开发了吗?
[/Quote]

看7楼。

根本用不着什么厂商的SDK。RS232通信协议是公开的、统一的标准,又不是哪个厂商的专属协议。

加载更多回复(8)
首先说明该文件有安装包和完整的代码。打开运行时需要添加(或者更新)Visio。如果电脑没有visio可以装一个。下载绝对超值。 本项目通过用C#进行Visio进行二次开发,实现了绘制电气接线图, 并能实现潮流计算。 0 前言 中国电力行业属于垄断行业。从目前来看,改革我国电力行业,打破垄断引入竞争已成为大势所趋,但是,电力行业与其他垄断行业不同,至少有三个特点: 电力行业与其他垄断行业服务对象不同。其他垄断行业服务对象都是部分群体,如民航、铁路它们的服务对象只是人们群众中的一部分,不像电力行业与所有人有关,不论城市或农村,不论生产或生活,不论信息传递或网络联系,家庭生活都离不开电,对社会是全方位的覆盖。一个国家电气化水平越高,电力在全社会作用越大。一旦发生问题,小则引起局部瘫痪,大则引起全社会瘫痪。因为它既是国民经济中的骨干行业,又是全社会的吃穿住行和人们生活需要的公用产品,这是其他垄断行业无法比拟的。 电力行业另一个特点是它的产品不能储存,发电量超过需要量会形成浪费,发电量不足,会影响生产和生活的需要。而且,社会对电量的需要是一个不定量,它会随着地区、时间、季节、气候、人们生活等方面的变化而变化。这种不能储备,需要量又是瞬息万变的行业,就要求对供给和需求要有精确的掌握,以便及时进行调整和控制,才不至于出现象美国加州那样长期电力危机。 中国电力行业还有它自己的特点。中国电力行业的垄断说到底是非经济型的行政性的垄断,情况非常复杂,这在国外也少见。在所有制上,有国家所有制、地方政府所有制、合资企业、集体所有制,国家担保贷款企业、股份制,等等。发电厂有火电、水电、核电。区域电价上差别也相当大。电网有国家投资,地方政府投资,企事业单位投资等等。在进行厂网分开竞价上网过程中,必须对电力企业的产权有所界定,对不同电价有所处理,以及今后电价的监督,等等问题,都需要政府介入。 但是,电力行业不可能彻底打破垄断,完全自由竞争,这是电力行业的特点决定的,即便在西方市场经济条件下,所有的竞争也不是完全的自由竞争(美国的电力自由化程度也不高,相对来说欧洲电力市场的自由最高,但也没有完全市场化),只能是有限的竞争。何况在我们这样大的一个国家,电力行业这么重要,政府不可能放手不管完全自由竞争,问题在于垄断和竞争的度如何掌握,二者如何结合,这是我们电力行业面临的挑战。 电力行业已经开始从生产导向型向市场导向型的巨大转变。电力行业运作继续关注在电厂和电网方面,并面临提高运行可靠性的强烈需求。当今,我们需要用崭新的视角来透视市场状况,一些术语,如竞争能力、产品 质量、收益率、效率及客户服务等都已经被赋予了全新的理念。只有清楚地分析、理解当前的形势并及时、勇敢地采取行动,才能应对这些挑战。 在21世纪,计算机显得越来越重要,在电力行业中,计算机也得到了 越来越广泛的运用。而且随着社会的进步,电力行业已经抛弃了手工绘制电气接线图和手工计算潮流。 本系统就是在基于以上原因,开发了一款利用Visio进行二次开发,将C#与Visio想结合,能绘制电气接线图,并能打开已有的电气接线,保存所绘制的接线图等功能,并能在接线图的基础上,进行潮流计算。 1 绪论 1.1 课题的研究背景与意义 1.1.1 课题的研究背景 随着国民经济的发展,我国电力系统的规模越来越庞大,其网络结构越来越复杂,因而电力系统基础分析计算的工作量也越来越大。图形是工程中最简洁的语言,用图形来描述电力系统的网络结构,图形会起到一目了然的作用,这也逐渐成为用户对电力系统分析计算软件的基本要求。光只能绘图并不能满足需求,将绘制接线图与潮流计算结合起来才能使软件更贴近需求。 Microsoft Visio是当今优秀的绘图软件,也是近年国内外最流行的图形化解决方案开发平台之一,具有强大的图形操作功能,它还提供了二次开发功能。能够建立电力系统计算软件的图形平台框架,在此平台上绘制和编辑基于电力系统电气接线图,对电网拓扑结构进行自动识别,完成了电力网络图形元件各参数输入和设置,并实现了电力网络操作的图形化模拟、仿真和潮流计算。 1.1.2 课题的研究意义 本项目实现的电气接线图的绘制和潮流计算。Visio是当今最优秀的绘图软件之一,它将强大的功能和易用性完美结合,可广泛应用于电子、机械、通信、建筑、软件设计和企业管理等众多领域。使用该软件可以完成各类专业图纸的制作,例如程序流程图、网络拓扑图、数据分布图、地图、室内布置图、规划图、线路图等,可见功能十分的强大。Visio软件有助于学生以及各种专业人员轻松地可视化、分析和交流复杂信息。这能够将难以理解的复杂文本和表格转换为一目了然的Visio图表,增加工作学习的效率。 1.2 问题的定义及内容简介 1.2.1 问题的定义 本系统是为了电力公司运行管理设计的。实现系统的准备工作如下: 1、搜集和查阅电力公司的相关资料、信息,调研、分析对项目开发有益的相关网站和软件系统; 2、学习和掌握VS2005技术,建立合适的开发环境; 3、综合运用所学专业知识,完成系统的总体设计和详细设计; 4、系统要完成的主要功能包括: (1) 通过VS2005对Visio控制绘图过程,处理图形元素。 (2) 使用VS2005建立并能在绘制的接线图基础上进行潮流计算。 (3) 系统可以对绘制的图另存为,并能将潮流计算结果保存到TXT文本中,方便以后查看。 1.2.2 问题的内容简介 本系统主要实现绘制接线图和潮流计算。 1、绘制接线图:在C#中调用Visio控件,并能将绘制电力系统图的相关Visio控件调用到该项目中,能绘制、打开、另存为。 2、潮流计算:因为网络节点不一定,故该功能先确定网络节点,并确定PQ节点个数,在依次录入线路参数和节点数据,最好进行计算。 1.3 问题的调研 在本系统开发之初,为了做好系统需求分析工作,我做了充分的调研,从而认识到完成本系统需做到以下几点: 1、对VISIO二次开发的可行性与价值进行充分的考查和调研。 2、了解在电力公司运行管理系统的需求和现状。 3、熟悉VS开发环境,熟练掌握C#操作TXT,掌握C#的编程语言。 4、系统具体运行环境及配置要求再做详细调查研究并与指导老师面谈。 在充分了解、调查情况的基础上,本人开发了这一项目。 2 可行性分析 可行性研究的目的,就是用最小的代价在尽可能短的时间内确定问题是否能够解决。要达到这个目的,必须分析几种主要的可能解法的利弊,从而判断原定的系统规模和目标是否现实,系统完成后所能带来的效益是否大到值得投资开发这个系统的程度。因此,可行性研究实质上是要进行一次大大压缩简化了的系统分析和设计的过程,也就是在较高层次上以较抽象的方式进行的系统分析和设计的过程。 系统的可行性分析主要包括经济上的可行性,技术上的可行性和操作上的可行性。本系统的可行性分析如下: 2.1 经济可行性 本系统作为信息与电气工程学院的创新项目,开发所需要投入的人力物力资源并不是很大。人力方面只需开发人员本人经过几个月的时间进行分析设计与实现,而在软硬件方面只需一台计算机和相关的软件即可。在整个开发过程中充分考虑了各个模块之间的独立性和可维护性,开发成本和运行成本以及维护成本都比较低。所以在经济上本系统的开发是可行的。 2.2 技术可行性 本系统的开发环境是微软的Visual Studio 2005开发系统,使用的语言是C#语言,运用TXT作为数据库。Visual Studio 2005是建立在公共语言运行库上的编程框架,是一个集成开发环境,其支持的语言有二十几种。所以利用这项成熟的技术开发这个系统在技术上是可行的。 2.3 操作可行性 本系统是基于Visio的二次开发,用户无需经过专业的培训即可以完成系统的安装操作及使用,运行十分的方便。所以在操作上本系统是可行的。 3 系统设计 3.1 系统总体功能结构 根据此系统所需要实现的功能,我们将该系统设计成主要两部分。设计了如下图所示的系统结构: 图3.1 系统结构图 3.2 系统数据库 鉴于本级软件主要考察的不是数据库,故此次设计我主要用于了TXT来保存结果。系统默认的数据库在安装文件夹下,名为data.txt的文本文件里。 txt文件是微软在操作系统上附带的一种文本格式,是最常见的一种文件格式 ,早在DOS时代应用就很多,主要存文本信息,即为文字信息,在微软在操作系统等于直接存,就是它了,现在多用的操作系统得使用记事本等程序保存,大多数软件可以查看如记事本,浏览器等等。 5 系统评价 5.1 系统特色/优点介绍 本系统是在做了许多考查和调研的基础上编写制作的,从界面设计到系统设置都是从方便用户的角度出发,系统具有以下几点特色: 1、 在调查和了解了网络教学的基本需求与应用现状的前提下设计开发了此程序,切合实际,具有较强的实用性。 2、本系统不需要通过网络即可运行,系统运行要求较低。并且系统可以在多种操作系统平台上(Windows NT/Windows 2000/Windows XP)运行。数据库采用TXT文本,移植性很强。。 3、 在重要的Visio画图板块,可以通过增加相应VSS模具的形式任意增加Visio画图的类型,十分方便。 5、 及时全面地处理各种错误异常,在潮流计算时有错误提醒机制,避免用户输入错误。 6、采用TXT作为数据库,便于移植,且操作快捷方便。 7、用户界面比较友好,操作简单,使用方便。

110,546

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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