串行接口按电气标准及协议来分包括RS-232-C、RS-422、RS485等。RS-232-C、RS-422与RS-485标准只对接口的电气特性做出规定,不涉及接插件、电缆或协议。
1) 串行通信由于没有一个标准的通信协议,所以自动化设备的通信协议非常多,常用的Modbus、Pofibus、Devicenet等,plc一般都带有标准的硬件单元,所以在使用这些协议时,程序上只需要建立标准数据连接表就可以,无需在按照协议格式,填写头、数据、校验等内容。
2) 但是遇到一些没有标准协议的设备,比如一些仪表采用的SWP协议,就需要在程序中按照第三方设备的协议格式,将数据完整的填写在PLC内存中,然后再使用串行通信指令,将数据由制定的通信接口发送出去,然后再按照响应数据的格式编写接收响应数据的程序,而且遇到变量数据,校验码又不能提前计算好写入内存,只能在程序中编写校验程序,这样不可避免造成程序的编写量非常大,程序非常繁琐。
3) 如SWP系列仪表的通信协议,PLC读取仪表当前的数值(温度、压力等),需要按照协议内容发送命令,如“图1”PLC发送的数据(读取当前测量数值),“图2”仪表回送的响应数据,按照协议内容,该数据是一个ASC码格式的浮点数,在很长的响应数据中,只有“图2”中低字节、高字节、小数点,是当前需要的数据,所以需要在程序中使用数据处理指令,将有用的数据摘选出来,再将ASC码格式数据转换成16/10进制的数据,才完成仪表数据读取的工作。