我现在用美国HORNER的OCS与一个国内厂家开发生产的单片机检测单元进行串口通讯。HORNER的产品与GE FANUC的在编程上基本类似,数据结构与语法都差不多。
那个检测单元是485口,首先我用PC的232串口转485与检测单元连接,用串口调试软件对其发送厂家提供的命令时(一串16进制代码,一个字节一组),能接收到相应的应答(也是一串16进制代码)。
但是当我用OCS与之通讯时不是这样。OCS是4线422串口,我的接线方式如下:
422的SDA、RDA并起来,连接485的A;
422的SDB、RDB并起来,连接485的B,
OCS有与GEPLC类似的串口操作功能块,如打开、关闭、发送、接收等。
我用这些指令做了一段梯形图来测试OCS与检测单元的通讯,将原16进制代码译成10进制数,按原顺序两个字节一组存在一串%R地址中,然后用发送功能块从这些地址发到缓冲区,发给检测单元。
现在问题是,我发送某一命令,接收回来却是与这段命令一样的一串代码,并非正确的应答。我变换了几种发送方式,如高字节与低字节互换,或每个%R地址中只放一个字节代码,结果都是发送什么收到什么。
请教各位高手,是我的接线有问题还是发送方式有问题? |