超过16个以上串口的程序怎么设计 ?MSCOMM不能打开16号以上端口.(50分)

  • 主题发起人 主题发起人 ccweifen
  • 开始时间 开始时间
C

ccweifen

Unregistered / Unconfirmed
GUEST, unregistred user!
有一个采集程序 ,要同时采集18个通讯设备 ,端口从1号- 18号 ,
但mscomm只能打开到16号 。

还有 ,同时用mscomm打开10多个端口系统像死机一样(鼠标等没反应)

是不是不应该用mscomm控件来做 ?
 
mscomm好象给每个串口开个监控线程,开十几个可能是有点慢,如果是主动采集数据可以用API来做,效率比较高。
超过10的串口前面加//./,入//./COM12
 
我认为是不是你程序的数据量太大了.
 
多个通讯设备应该通过一个主控器来实现,由主控器来分别响应各个通讯设备。
传到主控器只要协议区分就行了,这样只要一个通信端口就行了。由主控器转换到各设备上去。
如,主控器上连有显示屏,吐卡机,语音设备,地感等多个独立设备,不可能每个设备
都连接一个通信端口。

主控器就是个中间转换的东西。不过复杂点。
 
程序数据是挺大的 ,还有客户的计算机也比较老 ,还是98的操作系统(有很多原因不能换操作系统的,具体原因不说了) ,这样慢的速度客户很难接受 ,需要大作手术

nicai_wgl: 我想用api可能会好点, 有相关资料或例子吗 ? 高分酬谢 .

mail: cao_wf@std.com.cn
 
楼上的这样要改硬件了 。
现在硬件已定,不可能改动 , 计算机上有多串口卡,每个端口
连接一个设备。每个设备每一秒钟发送一串数据。
 
连接16个串口,难以想像,控制困难。
计算可以连最多256个设备,可是有必要这么做吗?
在设计架构时要充分的考虑到这些问题。
 
为什么不用总线方式?485什么的,这样一个串口就搞定了。
 
楼上两位 , 硬件设备已安装投入使用,不可能改 ,再说用一个串口无法实现才用18个串口的 。

现场是这样的,有18个区域 ,每个区域有很多采集仪表,通过485总线将数据汇集到区域小站,每个小站将采集到的仪表数据打包通过Modom发送到调度室 , modem当然要一一对应,所以用了18对modem ,所以计算机只能对18个端口进行数据采集 。
现在程序是用mscomm做的,无法打开16号以前端口了 ,且速度也慢 ,所以要征集良策
 
建议换其他串口控件看看...
或者直接使用API...
 
spcomm可以开到255,用动态创建
MSCOMM没试过
 
建议使用Moxa卡,属于PCI卡
 
计算机上是使用了16端口的Moxa卡的 , 否则计算机哪来那么多串口呀
 
支持jfyes的观点,找人用单片机做个多路排队控制器,花不了多少钱.
然后你程序就读写一个串口,把读取的数据根据约定的标记来区分来自哪个串口.
这样程序就简单多了.
 
>>找人用单片机做个多路排队控制器,花不了多少钱
说得那么轻松,定做一个这样的仪表没有几万块别人肯做吗!!
 
看来隔行如隔山啊.
委托他人用单片机开发这么一个东东应该费用不超过千元.
我以前委托人家开发过一个类似的设备,好像600元吧
当然,如果要求有漂亮的外壳,精美的包装,做成零售品的模样,那光模具费就要上万了.
 
俺也在学习串口啊,不知是不是很难啊?
 
mscomm 最多能打开16个 ,多了 不可能打开,这个是固定的,使用spcomm 也可以,这个 还是很好用的 ,我感觉比mscomm 强,使用api 就的楼主自己 想办法了,使用 spocmm 相对简单点。

还有 你说你的速度慢 。不应该啊,我原来也弄过,速度影响不是很大,即使数据量很大的情况下。还有 发送数据最好加个延迟,


还有数据量太大发送的话 ,最好打包发送,说白了就是信息多点在发送,别的就没有什么了。
好运吧
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
2K
DelphiTeacher的专栏
D
后退
顶部