我一直在与西门子PLC合作,使用RS232发送数据。通信本身运行良好,如果我将PLC连接到我的PC(通过串行通信端口(,我可以监控它。
现在,我想让这种通信无线化。我发现了HC-05模块,并决定买一些。我用我的arduino设置了其中两个(一个作为主设备,一个作为从设备,两个都配对并使用UART 9600,1,0,这与我的PLC使用的UART相同(。
我建立了以下连接:
PC连接(带串行通信适配器(
PLC连接
假设我想发送这个字符串:
<SoH>1RZ<CR>
如果我检查我的串行监视器,我会发现一些奇怪的东西。类似:
@#NULL©#NUL
奇怪的是,如果我只是移除蓝牙模块,并将PLC的Rx和Tx分别连接到PC的Tx和Rx,数据就会完美地发送。所以我知道我在PLC/PC端已经把所有的事情都整理好了。
有人经历过这种情况吗,或者有人建议我可以试试吗?
RS232通常使用±12V。-3V至-15V之间的负电压为逻辑高,+3V至+15V之间的正电压为逻辑低。
另一方面,您的蓝牙模块使用TTL逻辑。电压范围为0-5V。0-0.8V为低,2-5V为高。
所以
a( 您无法创建必要的电压电平
b( 如果将5V硬件连接到±12V,则可能会损坏硬件。
c( 您可能会遇到问题,因为RS232也有可选的流量控制机制。所以Rx和Tx可能还不够。
你至少需要一个TTL->用于PLC侧的RS232电平转换器和用于PC 的USB到TTL串行适配器