| 
        	 通讯流程的回顾。  
我们可以回顾下,PLC与变频器,或者是其他硬件之间,例如触摸屏与PLC等,  
在进行RS232或RS485通讯前,第一步要做什么?  
对的,设置两者间的通讯参数。  
波特率,停止位,效验位等等,必须保持一致。  
我们参数设置了,也仅仅是设置了,自己编写程序时并不需要关心这些参数。  
这是设置给系统低层软硬件用的。  
我们知道在低层硬件上,数据是按二进制位(bit)发送和接收。  
这些二进制数据收发如何保持同步,如何实现,由系统根据设置的通讯参数实现。  
所以我们编程时并不需要理会。  
   
通讯程序的编写。  
数据传递过程是以二进制形式进行的,但数据的具体的表现格式是比较随意的。  
比如一个通讯帧由哪几个部分组成,校验码放在哪个部分,  
是以ASCII码数据表示,还是16进制数据表示,  
都可以任意人为的规定。  
比如profi_bus,mod_bus,ai_bus是厂家开发的协议,  
我们要通过这些协议实现硬件通讯,  
编写程序时,就得按照协议规定来办事。  
协议规定要用ACSII码,我们也没的选择。  
比如永宏PLC规定要用ASCII来通讯。  
   
又比如宇电的AI_BUS规定要使用十六进制格式来通讯。  
   
再比如我们通过触摸屏的宏指令来实现与C++自由通讯时,  
通讯格式就可以由我们自个儿任意规定,  
两端的数据按自己的约定来打包与解析就好。  
为什么plc向变频器写频率时不用转换成ACSII码的?  
有了以上的了解,就比较好理解这个问题了。  
需不需要转换成ASCII码,就得看变频器硬件厂家的通讯协议规定了。  
只有按照变频器的的规定向它发送数据,人家才能够知道如何解析指令。  
例如三菱变频器DR-D700,使用MODBUS_RTU通讯规格。  
我们知道Modbus协议对于串行连接,  
有分Modbus RTU,Modbus ASCII两种。  
Modbus RTU是一种紧凑的,采用二进制表示数据的方式,  
Modbus ASCII是一种人类可读的,冗长的表示方式。  
人家不使用ASCII形式,我们自然就不用再将数据转换成ACSII码了。 
          (责任编辑:admin) |