我遇到过一个客户,他是用自己编写的软件与CP340进行通讯。上位机是用VB写的,当时客户就问采用ASCII格式能不能传送浮点,其实这是一个基本知识,我们知道7位的ASCII码只能表示0..127,而8位的的ASCII码能表示0..255,0..255就是对应了一个字节表范围。而不管是什么格式的数据,最终都是由字节来组成的,比如说一个浮点数对应4个字节。通讯时只要把浮点数的4个字节按顺序放到通讯帧里就可以了。不过有一个地方要注意,就是PC的地址格式是低字节在前,高字节在后,而PLC的正好相反。在编程时要注意。
还有一点要注意,在高级语言里浮点格式有多种。拿DELPHI要说,有REAL,DOUBLE,SINGLE。而REAL是6字节,DOUBLE是8字节的,SINGLE是4字节的,在与CP340做通讯时要选择使用4字节的, 这样才能和SIEMENS的PLC格式对应。
另有一些仪表只支持7位数据格式,那么你在传送高于128的值的字节时,高位将会被滤掉。如果不注意这点,接收和发送的数据将会不正确。
管理员注:本帖已被纳入此次探讨发帖整理,请
点此详阅。