HP 34401A万用表和PLC通信中遇到的问题
在测安全气囊气体发生器的时候用到了HP 34401A万用表来测量起爆器的工作内阻,以判断是否合格。HP 34401A万用表支持标准的SCPI指令,我用的是西门S7 300的CP340 RS232 模块来和万用表通信,在调试的过程中发现我用电脑和PLC通信,发送接收都正常,用电脑和万用表通信发送接收也都正常,但用PLC和万用表通信就怎么也不正常,PLC能发送数据,就是收不到万用表返回的数据,折腾了2天,万般无奈之下找了2台电脑,分别监听PLC和万用表发出的信息,通过观察,发现PLC发送的一切正常,而万用表一直就没发出来,于是尝试用一台电脑给万用表发送指令,另一台电脑接收万用表返回的数据,这时的结果和PLC一样只能发不能收,没想到这一下竟然找到原因了,因为监听使用的是三线制的,只接了2,3,5脚,没用接其他针脚,所以出错,于是把4,6阵脚也都接上,发现终于一切正常了。
问题是找到了,但2,3,4,5,6都接上了为什么PLC还是不能通信呢,通过多方请教,加上不停的摸索才知道原来CP340的DTR和RTS是需要单独去控制的,为此CP340内有现成的功能块FC5和FC6,通过更改程序,问题解决,困扰了几天,终于搞定了。
附:
RS-232-RS-232C接口定义(9芯)
针脚 定义 符号
1 载波检测 DCD
2 接收数据 RXD
3 发送数据 TXD
4 数据终端准备好 DTR
5 信号地 SG
6 数据准备好 DSR
7 请求发送 RTS
8 清除发送 CTS
9 振铃提示 RI
数据发送准备好(Data set ready-DSR)——有效时(ON)状态,表明MODEM处于可以使用的状态。
数据终端准备好(Data terminal ready-DTR)——有效时(ON)状态,表明数据终端可以使用。
这两个信号有时连到电源上,一上电就立即有效。这两个设备状态信号有效,只表示设备本身可用,并不说明通信链路可以开始进行通信了,能否开始进行通信要由下面的控制信号决定。
请求发送(Request to send-RTS)——用来表示DTE请求DCE发送数据,即当终端要发送数据时,使该信号有效(ON状态),向MODEM请求发送。它用来控制MODEM是否要进入发送状态。
允许发送(Clear to send-CTS)——用来表示DCE准备好接收DTE发来的数据,是对请求发送信号RTS的响应信号。当MODEM已准备好接收终端传来的数据,并向前发送时,使该信号有效,通知终端开始沿发送数据线TxD发送数据。
这对RTS/CTS请求应答联络信号是用于半双工MODEM系统中发送方式和接收方式之间的切换。在全双工系统中,因配置双向通道,故不需要RTS/CTS联络信号,使其变高。
楼主最近还看过