从以上测试结果可以看出,不同的 USB 转 RS232 产品支持的 PLC 通信结果是不同的,其原因主要有以下几点:
• USB 转 UART 芯片与电脑中运行的驱动程序提供的是仿真串口(或称虚拟串口),并未做到将 USB 模拟成“物理的 UART 串口”,所以不支持串口本身的纯硬件操作,如直接读写硬件寄存器的操作。
• 芯片所支持的 UART 数据格式(数据位、校验位、停止未等)与编程软件通信的数据格式不同,或芯片的缓冲区太小造成数据溢出。
• 编程软件的通信程序编写方式不同造成通信失败,电脑插上 USB 转 RS232 后,在驱动程序的管理下虽然在在 Windows 的设备管理器中出现了 COM 口,但这只是软件虚拟的 RS232 口,通信程序须通过较上层的系统调用来读写该口,如采用直接读写该口的物理寄存器的方式也许就访问不到物理地址。
• 有些 USB 转 UART 芯片的缓冲区较小,通信程序也许需插入一定的等待延时或进行流控管理。
• 驱动程序与操作系统的配合问题,早期的 Win98 系统支持 USB 要差一些。
• USB 转 UART 芯片升级后,由于价格降低,芯片简化造成通信失败,如 PL2303 芯片原来支持与三菱 FX 和 A 系列 PLC 通信,升级后的芯片 PL-2303HX 则不能与 A 系列通信。
解决办法:
我们的电脑只有 USB 口,如何使用编程软件与 PLC 通信,只有以下解决办法:
• 直接选用 PLC 厂家为各自的 PLC 开发的 USB 编程电缆,这个办法简单省事。
• 根据不同品牌型号的 PLC 购买不同型号的 USB 转 RS232 ,再配以原来的传统编程电缆使用,这种方法很麻烦,需在众多厂家的型号中去筛选和测试。你购买的 USB 转 RS232 也许支持某些品牌型号的 PLC ,但却不能支持另一种品牌型号的 PLC 通信。
• 采用 USB 接口芯片加单片机自己开发适合 PLC 通信的 USB 转 UART 协议接口,这种方案要求用户掌握 USB 与 UART 较深层次的技术。
• 在电脑中安装总线式的 RS232 串口卡,台式机有许多 PCI 总线的多串口卡,笔记本电脑有 PCMCIA 串口卡选用,但要注意有的编程软件不支持扩展串口。
• 尽量使用高版本的编程软件。
以上拙见是笔者对现在 USB 转 RS232 市场调查的一些看法,仅供同行参考,随着技术的进步,也许今后的 USB 转 UART 芯片会做到将 USB 模拟成“真正的物理 RS232 口”。
|