请教各位,C++ Builder如何用Modbus TCP协议实现PC与多个PLC通讯

木奇 2011-12-06 03:49:42
请教各位,C++ Builder如何用Modbus TCP协议实现PC与多个PLC通讯?

目前程序用Socket建立连接,能用Modbus TCP协议与单个PLC建立连接,读写数据,如果需要同时连接多个PLC如何实现,是采用建立多个Socket实现?这样会不会占用太多资源?还是只要一个socket,每次连接后,再重新读取数据?
麻烦各位给个思路,现在混乱中,谢谢啦!
...全文
934 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
木奇 2011-12-07
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 cankoo 的回复:]

用不到实时监控的话,可以循环扫描,轮流发命令,收一个处理一个。个人感觉用OPC会更好。
[/Quote]

目前程式是PC端作上位机,主动读取每个PLC中的数据,作数据处理并显示,是不是PC端应该循环读取每个PLC的值呀?
OPC不太懂,有没有相关的书推荐一下,学习学习,谢谢!
cankoo 2011-12-07
  • 打赏
  • 举报
回复
用不到实时监控的话,可以循环扫描,轮流发命令,收一个处理一个。个人感觉用OPC会更好。
木奇 2011-12-07
  • 打赏
  • 举报
回复
非常感谢,我试试.
zzbinfo 2011-12-07
  • 打赏
  • 举报
回复
如果要求要求要PC主动连接PLC,你就用client Socket吧,至于你是用多个client Socket还是单个,你要求是多个plc同时读取的,你只能多个client Socket。
木奇 2011-12-07
  • 打赏
  • 举报
回复
是不是我问的问题太没水准了,怎么没人理我了??
木奇 2011-12-07
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 songhtao 的回复:]

引用 15 楼 flying0302 的回复:
引用 14 楼 cankoo 的回复:

用不到实时监控的话,可以循环扫描,轮流发命令,收一个处理一个。个人感觉用OPC会更好。


目前程式是PC端作上位机,主动读取每个PLC中的数据,作数据处理并显示,是不是PC端应该循环读取每个PLC的值呀?
OPC不太懂,有没有相关的书推荐一下,学习学习,谢谢!


可以用多线程,并发读……
[/Quote]

另外请问下,采用多线程,怎么判断是读取哪个PLC的值呀?谢谢!
木奇 2011-12-07
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 songhtao 的回复:]

引用 15 楼 flying0302 的回复:
引用 14 楼 cankoo 的回复:

用不到实时监控的话,可以循环扫描,轮流发命令,收一个处理一个。个人感觉用OPC会更好。


目前程式是PC端作上位机,主动读取每个PLC中的数据,作数据处理并显示,是不是PC端应该循环读取每个PLC的值呀?
OPC不太懂,有没有相关的书推荐一下,学习学习,谢谢!


可以用多线程,并发读……
[/Quote]

请问有没有用多线程实现通讯的代码啊,迷糊中,谢谢啦!
我不懂电脑 2011-12-07
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 flying0302 的回复:]
引用 14 楼 cankoo 的回复:

用不到实时监控的话,可以循环扫描,轮流发命令,收一个处理一个。个人感觉用OPC会更好。


目前程式是PC端作上位机,主动读取每个PLC中的数据,作数据处理并显示,是不是PC端应该循环读取每个PLC的值呀?
OPC不太懂,有没有相关的书推荐一下,学习学习,谢谢!
[/Quote]

可以用多线程,并发读
木奇 2011-12-06
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 zzbinfo 的回复:]

引用 8 楼 flying0302 的回复:
PC端采用Server Socket怎么与PLC主动连接呀,目前程式是采用PC主动连接PLC,主动读写PLC寄存器中的数据,谢谢!……

你要多个PLC同时连接pc,应该把pc做服务器端吧,让plc主动连接pc。这个只是我个人的想法,具体还要看你这个项目的具体要求。
[/Quote]

要求要PC主动连接PLC,Server Socket能做到吗,如果不能用client Socket连接PLC应该采用建立多个Socket进行连接,还是建立一个每次要读写数据,先连接,再读写呀,谢谢!
zzbinfo 2011-12-06
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 flying0302 的回复:]
PC端采用Server Socket怎么与PLC主动连接呀,目前程式是采用PC主动连接PLC,主动读写PLC寄存器中的数据,谢谢!……
[/Quote]
你要多个PLC同时连接pc,应该把pc做服务器端吧,让plc主动连接pc。这个只是我个人的想法,具体还要看你这个项目的具体要求。
木奇 2011-12-06
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 zzbinfo 的回复:]

引用 6 楼 flying0302 的回复:
另外,PC 采用Client Socket 合理吗?

pc端采用Server Socket作为服务器端操作。具体你参照资料把现有的改成阻塞模式的通讯就行了
[/Quote]


PC端采用Server Socket怎么与PLC主动连接呀,目前程式是采用PC主动连接PLC,主动读写PLC寄存器中的数据,谢谢!
zzbinfo 2011-12-06
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 flying0302 的回复:]
另外,PC 采用Client Socket 合理吗?
[/Quote]
pc端采用Server Socket作为服务器端操作。具体你参照资料把现有的改成阻塞模式的通讯就行了
木奇 2011-12-06
  • 打赏
  • 举报
回复
另外,PC 采用Client Socket 合理吗?
木奇 2011-12-06
  • 打赏
  • 举报
回复
能说的具体些吗,我是初次做通讯方面的程序,很多都不太懂,谢谢啦!
zzbinfo 2011-12-06
  • 打赏
  • 举报
回复
这个参照Socket的阻塞模式做,应该能满足你的要求
木奇 2011-12-06
  • 打赏
  • 举报
回复
PC要实时读取PLC中的数据,并做数据处理,目前设计是按最多连接的仪器数200个左右,实际应该只有几十台设备,这样的话,应该怎样设计?谢谢!
cankoo 2011-12-06
  • 打赏
  • 举报
回复
思路已经很清晰了
zzbinfo 2011-12-06
  • 打赏
  • 举报
回复
这个要看你的具体需求的吧,看你PLC通讯是不是要求尽量实时的,还有就是同时最多有多少个联机?

1,317

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 网络及通讯开发
社区管理员
  • 网络及通讯开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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