哎,又来提问了,还是关于ClientSocket,惭愧
对牛乱弹琴 2012-03-21 10:57:37 ClientSocket与PLC通信,发送指令后PLC会返回不同寄存器的值。
比如我现在用两个定时器不断发送指令(分别读取两个寄存器的值),
而PLC每 接收到我发的指令 就会返回当时寄存器的值,格式完全相同,只是内容不同(从内容上看不出来自于哪个寄存器)
我在OnRead事件用ReveiceBuf函数读取,问题就是我怎么区分收到的数据 是哪个寄存器的值呢?
说一下我想到的思路:
1、用多个ClientSocket组件,相当于多个客户端,但是这个很麻烦,绝对不是最好的方法
2、用IdTCPClient组件,采用阻塞模式,这样就不存在区分的问题了,但是有隐患。如果我需要多个数据同时发送,等待时间 会不会有点长。而且需要一个数据发送不成功,并不影响别的数据的发送(多个定时器发送不同的数据内容)
3、多线程。。。没用过。。。不知道该怎么处理
其实问题很简单,就是通过一个端口读取不同寄存器的值,我需要对不同的寄存器做不同的处理,但是我区分不出来数据来自于哪个寄存器