论坛首页 综合技术论坛

产线管理系统,如何做架构?

浏览 15339 次
精华帖 (0) :: 良好帖 (2) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2009-06-09   最后修改:2009-06-09
我们企业用delphi+oracle做产线管理系统,作业方式就是给我们的产品(手机)贴条码,然后通过刷条码进系统来管控流程。有时候要调用外部程序,有时候要打印(传文档到LPT端口)。因为windows费用的问题,部分电脑采用linux+wine的方式来运行系统。

现在我们考虑重新开发系统,因为Delphi渐渐不支持了,以及因为效率的原因,要换到3层的架构。我们主管的想法是使用.net开发。我不知道.net的界面是否可以支持跨平台。

我个人因为兴趣原因,想用python+pyqt+django+salalchemy来开发系统,但是因为自己的实力不够,所以不好来推这样的架构,我的想法是客户端用pyqt,采用xmlrpc连接业务逻辑服务器,同时运行一个web服务器来显示查询页面(也可以整合到客户端中),DB端用sqlalchemy连到oracle。

请问各位觉得我的想法如何,有什么更好的实现方式(实在不想用.net开发,但是考虑到可维护性,不知道.net能够撑多久)?

列一下需求:
3层架构
夸平台
能够运行本地程序,做一些交互
方便分布(产线电脑,有些是局域网,只能访问特定的服务器)
方便开发(个人建议能够接近Literate Programming,或者脚本式开发)
实时性好,产线作业员可等不了几秒。

我们的开发team为3人,我是主程序员,可以在架构上面说得上话。只要我能够开发出一个原型,并作出分析报告,采用我的架构应该没有问题。业务逻辑都是现成的,只要按照逻辑重新coding就好了。
我对架构的方面完全没有经验,请问应该如何去学习相关的知识呢?
   发表时间:2009-06-17  
。net能跨平台???????
0 请登录后投票
   发表时间:2009-06-18  
taupo 写道
。net能跨平台???????


.Net可以跨平台

http://www.mono-project.org/
0 请登录后投票
   发表时间:2009-06-18   最后修改:2009-06-18
我做过类似的系统,这样的系统功能跨度比较大,如果可能的话建议只用Java写。

不知道“客户端”机器配置怎样,如果配置相当好的话和服务器端可以用ActiveMQ做消息通信,如果配置差一点的话再考虑用PyQt什么的来调服务器上的Web Service。如果时间充足的话可以自定义一套消息协议,在服务器端准备一个线程池接收消息,这套消息系统恐怕需要一个人专门维护。服务器端越简单越来越好,Tomcat足够了,最好连Tomcat也别用,ActiveMQ可以单独启动,自己做的消息系统就更不用说了。

至于打印什么的,做好了消息通讯之后一个礼拜的时间就能完成。

做这样的系统最佳搭配莫过于tuxedo了,不过报出价来你们老板肯定不接受。

你给的信息有限,不知道“客户端”的软件需要输入一些什么样的内容。所以一些细节上没法帮你参谋。这样的系统干系重大,所以多花一些时间做得精细一些很有必要。

祝好运。
0 请登录后投票
   发表时间:2009-06-20  
1. 前端BS,就不存在什么语言写了,所有客户端有浏览器就行了。前段作业员处理的数据会被送到Q
2. 消息中间件,Websphere MQ,制造产线不需要省钱,要做制造执行系统的公司应该产能都不错的
3. 后端过账实际事务处理代码,获取MQ的数据到DB,从C到JAVA到.NET都可以

我们公司目前还有一种模式,就是没有Q,并且由于没有了Q,我们事务处理的代码都是用PL/SQL写的,我给你推荐有Q的那种

还有在DB设计上,这个需要根据你们产线复杂性及产能来定,我的建议,有一张表是存放所有生产历史的(这张表可能需要考虑水平切割,看你能够预计的数据量),还有一张表是存放目前产线上产品状态的,手机编号在这张表里是主键。讲讲为什么: 当老板想通过你这个系统知道本月生产出来了多少个手机,从历史表中可以知道,当然我相信你们的ERP中也可以知道;当老板想知道公司目前产线上还有多少正在生产中的手机,就从状态表中知道。

0 请登录后投票
   发表时间:2009-06-21   最后修改:2009-06-21
ziyi 写道
1. 前端BS,就不存在什么语言写了,所有客户端有浏览器就行了。前段作业员处理的数据会被送到Q


这种程序用BS的太少了,因为需要生成条码和刷条码,极有可能要用串口通信,所以如果厂房内配备的机器性能比较好的话还是用Swing搭配起来会比较顺,而且这种软件界面不会很复杂。
0 请登录后投票
   发表时间:2009-06-21  
可以采用纯java来开发,客户端使用swing编写,netbeans ui可视化设计器还是不错的。

听说delphi现在在开发跨平台版本,不知道什么时候出来。
0 请登录后投票
   发表时间:2009-06-22  
cyberblue 写道
我做过类似的系统,这样的系统功能跨度比较大,如果可能的话建议只用Java写。

不知道“客户端”机器配置怎样,如果配置相当好的话和服务器端可以用ActiveMQ做消息通信,如果配置差一点的话再考虑用PyQt什么的来调服务器上的Web Service。如果时间充足的话可以自定义一套消息协议,在服务器端准备一个线程池接收消息,这套消息系统恐怕需要一个人专门维护。服务器端越简单越来越好,Tomcat足够了,最好连Tomcat也别用,ActiveMQ可以单独启动,自己做的消息系统就更不用说了。

至于打印什么的,做好了消息通讯之后一个礼拜的时间就能完成。

做这样的系统最佳搭配莫过于tuxedo了,不过报出价来你们老板肯定不接受。

你给的信息有限,不知道“客户端”的软件需要输入一些什么样的内容。所以一些细节上没法帮你参谋。这样的系统干系重大,所以多花一些时间做得精细一些很有必要。

祝好运。


客户机有新有旧,有装2000,XP,debian的。
客户端有几种工作,有些只需要刷产品条码来作流程管控,
有些需要打印条码(copy xxx.txt lpt1的方式)
有些需要调用外部程序对产品作一些测试。
0 请登录后投票
   发表时间:2009-06-22  
ziyi 写道
1. 前端BS,就不存在什么语言写了,所有客户端有浏览器就行了。前段作业员处理的数据会被送到Q
2. 消息中间件,Websphere MQ,制造产线不需要省钱,要做制造执行系统的公司应该产能都不错的
3. 后端过账实际事务处理代码,获取MQ的数据到DB,从C到JAVA到.NET都可以

我们公司目前还有一种模式,就是没有Q,并且由于没有了Q,我们事务处理的代码都是用PL/SQL写的,我给你推荐有Q的那种

还有在DB设计上,这个需要根据你们产线复杂性及产能来定,我的建议,有一张表是存放所有生产历史的(这张表可能需要考虑水平切割,看你能够预计的数据量),还有一张表是存放目前产线上产品状态的,手机编号在这张表里是主键。讲讲为什么: 当老板想通过你这个系统知道本月生产出来了多少个手机,从历史表中可以知道,当然我相信你们的ERP中也可以知道;当老板想知道公司目前产线上还有多少正在生产中的手机,就从状态表中知道。


1. 我们需要打印条码和调用程序,前端用BS做不了或者做不好。
2. 看起来大家都是java阵营的,请问学习这些中间件的知识看什么书?

DB设计还好,用现成的。
0 请登录后投票
   发表时间:2009-06-22   最后修改:2009-06-23
> 客户机有新有旧,有装2000,XP,debian的。

这个估计要做好测试,看一下软件在机器上的运行速度是否在容忍的范围内,不过我当初做Swing的时候用的机器是Celeron600,机器再差也不会差过这个吧。

> 客户端有几种工作,有些只需要刷产品条码来作流程管控,

这个地方用串口通信就可以,javax.comm(http://java.sun.com/products/javacomm/)或rxtx(http://users.frii.com/jarvi/rxtx/)都可以,但是前提是需要知道条码阅读器的通信协议,如果手册上没写的话只能根据数据猜了,或是利用附带的DLL做JNI。

> 有些需要打印条码(copy xxx.txt lpt1的方式)

这个比较好办,但是条码是用什么工具生成的?不知道软件是不是还要有生成条码的功能。

> 有些需要调用外部程序对产品作一些测试。

这个是最难的地方,不知道外部程序的启动时间是多少,每次检测都启动一下会不会很浪费时间,如果绑定在当前系统里不很合适的话还是剥离出去比较好,用文件或者数据库导出信息。

祝好运
0 请登录后投票
论坛首页 综合技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics