关于PLC寄存器数据的读取

cyteng 2005-04-21 10:57:40
本人想用vb写一个读取PLC寄存器数据的程序,但由于PLC寄存器比较多,如果采用轮循的方式去读取的话,时间较长,对于数据需要实时性效果比较差,我想问各位高手,有什么好的方法?能够同时读取不同寄存器的数据。最好能附代码!!谢谢!!
...全文
2537 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
HANTANGXUETOMS 2010-05-31
  • 打赏
  • 举报
回复
能否给个事例啊!
熊孩子开学喽 2005-07-20
  • 打赏
  • 举报
回复
第一种方法:使用该PLC自己带的DDESERVER程序,可以免去自己找地址的麻烦,并且DDE可以以触发的方式来通知你的程序,效率比较高。
第二种方法:自己写一个DDESERVER程序,效果同上。

把读取PLC数据的程序放在“体外”,并通过DDE方式(TCP方式当然也可以,看你怎么写了)来和数据处理程序通讯。这样当你换了一个类型的PLC的时候,只需要改写DDESERVER程序,而数据处理程序不需要做人和改动。
并且这样写的话,两个程序并行处理的速度会比当个程序快得多。
cyteng 2005-07-20
  • 打赏
  • 举报
回复
我的PLC是西门子的,只支持PPI协议!哪位高手请不吝赐教!!
zhouxm0521 2005-04-28
  • 打赏
  • 举报
回复
看看你的PLC支持的协议,如果是支持modbus,则可以块读取数据,这样的话,可以一次读取125个字的数据量
cyteng 2005-04-28
  • 打赏
  • 举报
回复
哪位高手能给指点一招!?
kcm8233 2005-04-21
  • 打赏
  • 举报
回复
编写不同的指令对应不同的寄存器。
cyteng 2005-04-21
  • 打赏
  • 举报
回复
我本人采用的是一个文件来记录要读取的寄存器地址,文件内的内容如下:
寄存器地址 对应的实量
vb100 温度1
vb101 温度2

vbn 温度n
我先把这里面的寄存器地址和它们相应表示实际实量取出,完了在一个个的循环读取,我就是觉得这样比较慢,不能达到数据的同步,比如我读完一轮回来,vb100的数值已经变了可能几次了!
cyteng 2005-04-21
  • 打赏
  • 举报
回复
我是通过RS232口来读取的,tmran(没有别的,就想多学点) 所说的“将所有的寄存器采用地址变量列表”指的是什么意思?能否更详细的解答呢?
tmran 2005-04-21
  • 打赏
  • 举报
回复
将所有的寄存器采用地址变量列表,每次读取不同的寄存器时根据设定的地址变量自动变换,当然你需要把地址映射成不同的寄存器名称,不然以后就看不懂了。

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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