开发过工控软件的富翁们请指教(50分)

  • 主题发起人 bme_liuwei
  • 开始时间
B

bme_liuwei

Unregistered / Unconfirmed
GUEST, unregistred user!
现要开发一用于油库发油的工控机软件,开发环境是 Delphi 7 + SQL server 2000。
客户要求读出各个基于 Modbus-RTU 通信协议的下位机数据并传送到上位机中
储存(用SQL Server 2000 数据库)。然后根据数据生成各种报表。
现有一个问题:如何读取下位机数据?这个详细过程是怎样的?
Modbus-RTU 只有轮询和广播 2 种方式,我觉得在读取各个
下位机数据时采用轮询方式很不合理。因为完全不知道每个下位机(总共有 16 个下位机)
在何时装油。采用“中断”的方式似乎更为合理?即每个下位机装完油后发一信号,上位机
接受信号后读取数据。
我是第一次做这种项目,可能对一些问题理解的不够准确。
希望各位做过类似项目的富翁们不吝赐教。谢谢!
50 分 为谢!
 
Y

yblee

Unregistered / Unconfirmed
GUEST, unregistred user!
拿银子来,我帮你做
 
B

bme_liuwei

Unregistered / Unconfirmed
GUEST, unregistred user!
谢谢 yblee 的回答
我自己还是能够做这一项目的
以前没有接触过这些东西,如果你愿意帮忙
请给我答答疑,谢谢
 
Y

yblee

Unregistered / Unconfirmed
GUEST, unregistred user!
通讯方式是由你的下位机决定的,如果你的下位机是Modbus从站,只能通过轮询了
如果你的下位机不是通过485总线与上位机连接,而是每个下位机直接与上位机的一个串口连接,则可以为每个串口开个线程,这样可以增强一些时效性
 
B

bme_liuwei

Unregistered / Unconfirmed
GUEST, unregistred user!
非常感谢 yblee 的回答
是 485 口,从站
我看到一类似产品中有如下说明:
“上位机在发油过程中实时接受定值控制仪发来的发油数据,如实发重量,实
发体积,油温等等,并将这些实时信息在显示界面上显示出来,”
这个“上位机在发油过程中实时接受定值控制仪发来的发油数据”
是如何实现的呢?
非常感谢
 
M

Mike1234567890

Unregistered / Unconfirmed
GUEST, unregistred user!
使用总线时只能轮询了
把你的轮询函数写的高效一点
没问题的
 
Y

yblee

Unregistered / Unconfirmed
GUEST, unregistred user!
Modbus协议采用主从方式,从站收到主站发来的请求后,才进行应答,从站不会主动向主站发数据的
 
B

bme_liuwei

Unregistered / Unconfirmed
GUEST, unregistred user!
谢谢 Mike1234567890 的回答
你所说的“把你的轮询函数写的高效一点”,有什么好的建议吗?
谢谢!
 
D

DZHZH2000

Unregistered / Unconfirmed
GUEST, unregistred user!
何不直接采用组态软件?
 
B

bme_liuwei

Unregistered / Unconfirmed
GUEST, unregistred user!
to DZHZH2000
谢谢你的关注,是客户要求用 Delphi + SQL Server 2000 开发的
 
D

djf813

Unregistered / Unconfirmed
GUEST, unregistred user!
看仪表通讯的间隔时间,如果50MS轮询一个数据的话16个站,每个站3个数据,就需要最少2.4S轮询一遍,如果每个站超过3个数据,则需要更长的时间,如果轮询不能满足你的要求可以用多串口卡多线程,每个站对一个串口应该可以达到每秒查询一次。
 
X

xyzbox

Unregistered / Unconfirmed
GUEST, unregistred user!
如果你这个都不会,建议老兄不要接这样的单子。等你做出来客户也不会要的。
 
B

bme_liuwei

Unregistered / Unconfirmed
GUEST, unregistred user!
谢谢 yblee
 
顶部