当前位置:编程学习 > C#/ASP.NET >>

编写这种软件的思路是什么(标题说不清楚),求高手指教!

  单位有一些老设备,设备都有主控计算机,主控计算机里有专门控制这些设备的软件。

  现在,单位想通过网络远程控制这个设备,并想实时采集设备的一些运行状态。


  希望高手们帮帮忙,指点一下思路。


  准备用C#来实现,还没用过呢,所以请您解释的尽是详细点,俺在这里先谢谢啦! --------------------编程问答-------------------- 好着急哦,怎么没人关注下呢? --------------------编程问答-------------------- 具体问题还可以回答,这类海阔天空的问题却很难回答。一句话:把设备硬件配置参数和操作系统、接口驱动、功能和与上位机的通讯机制全都搞清楚先。 --------------------编程问答-------------------- 呵呵,偶也知道问题比较笼统,主要是刚接到这个项目,好多情况还不清楚。本来说去调研,这周没去成的。


我们有许多这种装备,各种类型的,楼上的意思好像是要再单独开发一个支持网络控制的软件,我想这样工作量会很大。


我现在的想法是:通过网络,控制设备本地控制软件,不知这样可不可行?如果可行,大概思路是什么?

  还请多指点,这样我可以再赶紧看点资料,相关知识(装备方面和C#开发方面)了解太少了,急需热心人帮忙啊! --------------------编程问答-------------------- 开始=>程序=附件=>远程桌面 --------------------编程问答-------------------- 设备的硬件是不能替换的,这是你的前提条件。

如果你要代替设备里边的应用程序(甚至操作系统),就需要知道设备的硬件配置,原来的操作系统,下载和安装操作系统的可行性,在新的操作系统上编程的最大能力(例如RAM的限制、到底可能不可能使用.net)。

如果你要代替设备的下位机与设备通讯,就要清楚设备如何控制它的前端的,例如它是如何采集数据的机制。

如果你要代替设备的上位机与设备通讯,就要清楚上位机控制的设备所用的通讯协议,才能继续控制它。 --------------------编程问答--------------------   能够用远程桌面就好解决了呀,我们需要通过网络对装备的参数进行配置,并通过网络获取装备的一些运行参数呀?

  期待高手关注、指点! --------------------编程问答-------------------- 网络配置通信在物理接线等方面大概都没有什么难点,所有的难点大概都在于原来的上位机通信协议有没有文档。 --------------------编程问答-------------------- 远程桌面就相当于本地操作,怎么会有问题呢.Internet网也可以远程桌面的.就算是写程序,也就是模拟一些本地操作,不如直接远程桌面. --------------------编程问答--------------------   感谢sp1234的关注!!!

  
  可能我还是没有说清楚!


  装备(或者说设备)一般都有专用的车来装载,车里面除了有装备,还有控制装备的计算机(有时车内部是一个网络,主控计算机通过网络来对装备进行控制)。

  控制装备的计算机功能比较完善,我现在的问题是:

  能否通过网络远程(比如计算机A,在车外面通过单位在局域网,在50KM外)控制装备载体车里主控计算机(用B表示)中的“本地控制软件”(用C表示,是个软件)。

  由于有很多种不同的装备,单独针对每一个开发工作量大。

  我们现在的想法是(不知可不可行):

  (装备实体用X表示)让A,利用单位内部局域网,传输一些控制装备X的参数,由装备主控计算机B来解析,然后由B来传送给本地主控软件C,再由C控制装备X运行。
  之后,还需要A通过B,从主控软件C中采集一些装备X的运行状态参数,并返回给A。

  也就是说,在装备X的主控计算机中,做一个软件,它有三个功能:一是接收并解析A的控制参数,二是将A的控制参数控制传送给C,并激励C,使C再控制装备X运行,三是由响应A的指令,控制C收集X的运行状态参数,然后发送给A。

  Sp1234兄,不知这下偶说明白没呢? --------------------编程问答-------------------- C#还没有这么强大吧,用VC++,Java,Delphi.......这些成熟的技术是可以的 --------------------编程问答-------------------- 请问zjh222大哥:

  不管用什么软件,只要能实现就行。

  那请问您,用VC++、JAVA、DELPHI来实现时,具体需要什么思路呢? --------------------编程问答-------------------- 基本明白。

将每一台车里的上位机连入一个服务器,其实这些都是很简单的系统设计,有时候我反倒(在不知道你们的具体难点的情况下)比较难以说有那些地方有什么难办的。

基本上,不要纠缠与客户端,也不要纠缠于数据库实现,专心制定好业务信令文档,就为有一定规模的(指超过200个客户端、服务功能超过50个的)业务网络打下了坚实的基础。一旦通信确定好,再考虑服务器需要几台,如何扩充和负载均衡,等问题。最后才考虑数据库选择什么类型的产品、如何一边开发一边更新升级数据库结构的部署问题。如果你开始纠缠于那种客户端直接远程打开数据库进行SQL访问的设计思路,对于整个系统架构肯定一直处于恐惧之中——对于这种需要扩充和维护的网络系统,数据库编程只是细枝末节。

你描述的里边有一点,50M的单位局域网,这似乎不太可行。除非你们单位已经有了现成的可以达到50km远的局域网,否则就应该考虑民用的GPRS、3G之类的网络。

另外“主控计算机”如果没有什么特殊要求,直接使用ARM9之类的小机器代替,安装固定起来很方便,而且可以使用基于.net compact framework来开发你的网络的客户端,并且采集“设备”的数据和控制它。而且无线通讯模块可以随意选配。 --------------------编程问答-------------------- socket连接,自己设定通信协议,前提是支持tcp协议
可以吗? --------------------编程问答-------------------- 局域网是现成的,不用考虑的。

另外,这些装备都是现有的,主控计算机当初就是一台计算机,现在也不会再改成ARM系列了。


SP1234兄指点的很正点啊:把精力集中在“业务信令文档”上!

所谓的信令文档,是不是就是各种命令的约定?

另外,我还是对如何做这个项目一头雾水(偶以前没做过像样的项目,嘿嘿,不好意思老兄):假如说信令文档设计好了,整个项目实施的思路是什么?还请指教!

真想现在跟老兄一起喝酒去!边喝边聊边请教,哈哈!

--------------------编程问答-------------------- 如果不替换主控机,那么能不能使用.net很难说,你要调查主控机的硬件配置能力、操作系统等等,看看能不能扩充其能力支持.net framework。如果能,重装或者升级操作系统即可。

了解主控机跟设备的通讯很重要,因为或多或少你可能都要取代或者新增主控机的软件而直接跟设备通讯,在原来软件系统功能之外额外地采集数据和进行控制。

了解主控机的局域网通讯接口很重要,这样你才可以知道到底能不能连入你们的现成的局域网络。

信令设计时就把数据结构设计清楚了,而且还设计清楚了消息通信的时序。这样整个系统此时即使拆散给3、4家公司分包去做客户端和服务端的各部分,看上去也不会散。这就好像拿到一套盖楼的蓝图,你可以随时在那里监理、考虑如何去提早开始系统自动化测试,而不是等着那些底下干活的人给你设计、争吵系统架构。 --------------------编程问答-------------------- 这个应该不是太难吧. --------------------编程问答-------------------- 越来越感觉这个项目难度好大呀!


这些机器有些都是2000左右的,肯定不支持.NET!

如果重装操作系统,都不知道装备本地控制软件有没有原来的安装程序。

(不怕你笑话,国有企业嘛,就这样!)

我想最好不要直接跟装备通讯(实在不行再说),现在考虑的就是用远程计算机A,通过装备车上的计算机B来控制本地控制软件C,再控制装备X。有些难度大的暂时先不考虑,要不我自己吓的不敢接这个任务了!

如果不支持.NET,可能就要用C++,或者是DELPHI了,这样车上的计算机B就不存在支持.NET的问题了。

现在还是不清楚,这些功能用VC++、或DELPHI的话,能不能实现呢?比如要用到哪些模块、控件、类、函数等等。

一头雾水呀! --------------------编程问答-------------------- 不能.net
采用DCOM+

可以.net
采用remoting --------------------编程问答-------------------- 不明白 pcnetman888 的意思啊?

能否再明白点呢? --------------------编程问答-------------------- 主控计算机不是掌握了一切这些设备的控制权吗
利用远程桌面登录主控机不就一切OK啦
一点小小看法哦 --------------------编程问答--------------------
引用 17 楼 wxfabc 的回复:
如果重装操作系统,都不知道装备本地控制软件有没有原来的安装程序。

这样的话,原程序的信息看样子也不会太多咯?直接调用控制程序的功能也不太好实现了
引用 17 楼 wxfabc 的回复:
 我想最好不要直接跟装备通讯

那么剩下的就只有直接操作控制程序本身了
看上面很多人提到了远程控制,我也觉得似乎这样很方便,但是lz都没有回应,不知道为什么
如果一定要开发程序进行控制的话,我的想法就是针对每个程序进行模拟输入:先找到窗体,再逐个寻找控件,往里面填参数,点击按钮,读取内容,或者截图等等,但是这样一来跟你的目的又相反了
引用 3 楼 wxfabc 的回复:
我们有许多这种装备,各种类型的,楼上的意思好像是要再单独开发一个支持网络控制的软件,我想这样工作量会很大。

因为每个控制程序都需要单独处理 --------------------编程问答-------------------- 引用引错了……
引用 9 楼 wxfabc 的回复:
   由于有很多种不同的装备,单独针对每一个开发工作量大。
--------------------编程问答-------------------- 远程控制软件
需要改改鸽子的源代码....
类似于鸽子的功能 --------------------编程问答--------------------
引用 21 楼 thoughter 的回复:
如果一定要开发程序进行控制的话,我的想法就是针对每个程序进行模拟输入:先找到窗体,再逐个寻找控件,往里面填参数,点击按钮,读取内容,或者截图等等,但是这样一来跟你的目的又相反了


我目前也是这个想法,就是缺少具体实现的思路啊!


希望thoughter兄多多指点,比如说要用到哪些控件、模块、类、函数等等,谢谢谢谢啦!!!


引用 21 楼 thoughter 的回复:
看上面很多人提到了远程控制,我也觉得似乎这样很方便,但是lz都没有回应,不知道为什么

考虑过这种方案,目前已被列为可选方案之一了。 --------------------编程问答--------------------
引用 24 楼 wxfabc 的回复:
我目前也是这个想法,就是缺少具体实现的思路啊!


 希望thoughter兄多多指点,比如说要用到哪些控件、模块、类、函数等等,谢谢谢谢啦!!!

只是想法,我也不会……
看看 这个 有没有启发
--------------------编程问答-------------------- 几个参考,不知道有没有用:
http://topic.csdn.net/u/20090511/15/849d19e2-8e97-473b-b739-71a9e70a312a.html
http://topic.csdn.net/t/20050227/21/3810432.html
http://topic.csdn.net/t/20020526/17/754067.html

嗯,以后万一要做类似东西的时候就来这找了~ --------------------编程问答--------------------
引用 26 楼 thoughter 的回复:
几个参考,不知道有没有用:
http://topic.csdn.net/u/20090511/15/849d19e2-8e97-473b-b739-71a9e70a312a.html
http://topic.csdn.net/t/20050227/21/3810432.html
http://topic.csdn.net/t/20020526/17/754067.html

 
  有点思路了,太感谢啦,偶回去再消化消化!

  感谢感谢 !
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,