如何读取plc指定地址的数据

sinat_34324286 2017-02-28 04:41:16
用Delphi编程,TCP连接plc之后如何读取plc指定地址的数据,用IdTCPClient.CurrentReadBuffer读的话会读出所有的数据,但是我给plc发TCP协议指令,读回的也是所有的数据,按理来说不是应该也是一串指令吗?
...全文
5467 29 打赏 收藏 转发到动态 举报
写回复
用AI写文章
29 条回复
切换为时间正序
请发表友善的回复…
发表回复
machang123321 2019-06-13
  • 打赏
  • 举报
回复
可以,非常厉害
埃和智能 2017-07-13
  • 打赏
  • 举报
回复
每种PLC品牌的厂家都会提供高级语言的解决方案的 西门子:http://blog.sina.com.cn/s/blog_16d7d3ecb0102x1z5.html 欧姆龙:http://blog.sina.com.cn/s/blog_16d7d3ecb0102x3qi.html 三菱:http://blog.sina.com.cn/s/blog_16d7d3ecb0102x6wj.html 施耐德:http://blog.sina.com.cn/s/blog_16d7d3ecb0102x7ui.html
sinat_34324286 2017-03-07
  • 打赏
  • 举报
回复
引用 23 楼 lyhoo163 的回复:
http://www.plc100.com/prog/sheji/DELPHI.htm 参考一下。
load_tool这个函数初始化连接,那不需要本机和plc的IP地址吗
sinat_34324286 2017-03-07
  • 打赏
  • 举报
回复
引用 24 楼 kwer 的回复:
NoDave 具体问谷哥度娘
你这么高冷这的好吗。。。
kwer 2017-03-07
  • 打赏
  • 举报
回复
NoDave 具体问谷哥度娘
sinat_34324286 2017-03-06
  • 打赏
  • 举报
回复
引用 18 楼 shuilongjian 的回复:
西门子不知道用什么协议,没用过。 MC协议与FINS协议都是有基于TCP的。如果你直接用 tcp socket 一般都用厂家提供的控件,直接调用API就行了,你直接用tidclient与之通信,这有点难。
用tidclient通信的话,现在能连接上,但是就是读和写的位置定不下来,会读出所有数据,现在号线是我被动的数据,因为只要plc用脉冲发数据我才能真正的读上来
sinat_34324286 2017-03-06
  • 打赏
  • 举报
回复
引用 19 楼 lyhoo163 的回复:
还是直接使用厂家的SDK比较好。
是什么东西,西门子应该有提供的其他软件但是我么上位机做的不仅仅是通信,基于这个上我们还要做其他的,所以我还是得自己编程
lyhoo163 2017-03-06
  • 打赏
  • 举报
回复
lyhoo163 2017-03-06
  • 打赏
  • 举报
回复
还是直接使用厂家的SDK比较好。
sinat_34324286 2017-03-06
  • 打赏
  • 举报
回复
还想问一下,我这边发报文给plc需要编程,那plc自动回复报文需不需要编程,还是说plc如果支持这个协议就不用编程协议会自动回复
shuilongjian 2017-03-05
  • 打赏
  • 举报
回复
三菱PLC 常用MC协议,欧姆龙PLC常FINS协议,不知道楼主用什么协议? 只说用TCP协议,这有点说不清楚
shuilongjian 2017-03-05
  • 打赏
  • 举报
回复
西门子不知道用什么协议,没用过。 MC协议与FINS协议都是有基于TCP的。如果你直接用 tcp socket 一般都用厂家提供的控件,直接调用API就行了,你直接用tidclient与之通信,这有点难。
sinat_34324286 2017-03-05
  • 打赏
  • 举报
回复
引用 15 楼 shuilongjian 的回复:
三菱PLC 常用MC协议,欧姆龙PLC常FINS协议,不知道楼主用什么协议? 只说用TCP协议,这有点说不清楚
主要应该是西门子的,但是其他的欧姆龙有时也会用到,所以我不能只单单针对一种plc做通讯,也是悲催的,而且我网上查到可以用TCP协议的,这也是一种协议,而且TCP的话可能对大部门plc都通用的吧
sinat_34324286 2017-03-05
  • 打赏
  • 举报
回复
引用 14 楼 jankercsdn 的回复:
LZ做过串口的232或485和下位机通信吗?还有你说的TCP协议指令,是什么? 通用的TCP传输协议,这个可不是PLC通信协议。
我们之前用到的是opc通讯,但是现在他们调试说数据传送的有点慢,所以改成TCP,但是我们用到的plc型号有很多,西门子的为主要的,然后我在网上查到网上有TCP协议的,而且他们plc编程的也只用plc,所以我也不能改其他的,我也知道有modbus/TCP协议的,但是他们不用我也不能用其他的
shuilongjian 2017-03-04
  • 打赏
  • 举报
回复
不同的PLC用的协议也不一样,你直接用TCP socket 通信,PLC要与你定义好协议才行。看你的用法,怎么像是被动收数据?难道不是你发命令,再收吗?
看那山瞧那水 2017-03-04
  • 打赏
  • 举报
回复
LZ做过串口的232或485和下位机通信吗?还有你说的TCP协议指令,是什么? 通用的TCP传输协议,这个可不是PLC通信协议。
sinat_34324286 2017-03-04
  • 打赏
  • 举报
回复
有没有TCP连接plc的例子呀,想要参考一下
sinat_34324286 2017-03-04
  • 打赏
  • 举报
回复
引用 11 楼 shuilongjian 的回复:
不同的PLC用的协议也不一样,你直接用TCP socket 通信,PLC要与你定义好协议才行。看你的用法,怎么像是被动收数据?难道不是你发命令,再收吗?
怎么定协议,我有发指令给plc,就是用TCP协议的指令,但是我收不到我想要的数据,我也是第一次接触这个,所以我是用Delphi自带的TIdTCPClient控件来连plc的
sinat_34324286 2017-03-03
  • 打赏
  • 举报
回复
真的没人解惑吗
加载更多回复(9)

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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