|
你好,请问各位高手们,我现在使用DELPHI+SPCOMM想开发一个对下位机设备的串口通讯程序,但是使用过程中遇到这样的问题,还想大家指教指教。比如MOBUS RTU 的协议我使用了3号命读取下位机的两段寄存器,(比如读取的寄存器是0200H~023FH,和0280H~02BFH)两段寄存器都是有64个的,
我用发送的命令分别是:03 03 02 00 00 40 44 60
:03 03 02 80 00 40 45 88
地址 3号命令 起始位置 读取长度 CRC校验
接收的格式是:地址 命令号 数据长度 数据1 数据2........CRC校验
(两者返回数据开头都是:03 03 80 xx xx .........,返回长度也一样)
对于以上的情况,就是发送的起始地址不同,但是读取长度是相同的,两个命令返回的数据都是131个字节,在SPCOMM的Comm1ReceiveData方法中要判断的话,要怎样判断啊?我是直接定义了一个定时器定时发送以上两个发送命令的,是不是能够设定我发送第一个命令后,一定要等接收了数据,判断后,再发送第二个命令这样啊?不是很懂, 不知一般是用长度来区分还是怎样做才好,迷茫中,请高手们指教指教
还有一个问题就是,如果我发送的命令比较多,是不是都要在一个Comm1ReceiveData方法里面判断啊?如果程序较大,是不是能够单独出来一个单元直接用来发送接收的,再传给其他单元使用啊?????不知具体是用全局变量还是怎样做,还请高手指导一下,最好能详细一点,小弟不胜感激,谢谢谢谢
|
阿莫论坛20周年了!感谢大家的支持与爱护!!
知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)
|