土木在线论坛 \ 电气工程 \ 工业自动化 \ plc通讯原理和程序设计

plc通讯原理和程序设计

发布于:2006-06-30 12:01:30 来自:电气工程/工业自动化 [复制转发]
通讯程序设计在自动化系统的应用越来越广泛,例如plc与操作界面的数据交换,通过通讯对变频器的控制,plc的连网等等。
  
   要想实现plc的通讯编程,首先所选的plc必须有强大的通讯能力,就是说plc的操作系统能够支持多种通讯格式,通常一种品牌的plc如果能够提供给用户更多的编程自由度,那么这种品牌的技术开发能力就越强大,大多数品牌只能提供固定格式的通讯格式或协议,这就大大局限了plc与其他智能设备的数据交换。
  
   我们的plc产品具有RS232和光电隔离的RS485两个自由通讯口,两个通讯口可以同时收发数据,几乎可以适应所有通讯格式,可以提供CRC和BCC等多种校验方式。
  
   以一台PLC通过485通讯控制多个某品牌的变频器为例:
   如果该变频器的波特率是9600b/s,8个数据位,奇校验,1个停止位。那么首先必须在plc的嵌入C窗口的初始化代码区编程一个通讯口设置语句:Set485Port(9600,o,8,1);仅仅一个语句就完成了对485通讯口的编程。
  
   由于485通讯必须设定主从关系,这里是plc控制多台变频器,所以plc必须设置为主,因此还需在初始化代码区增加一个地址和主从设定语句:SetAddress(1,MASTER);事实上,对于主控制器来说,地址已经失去意义。
  
   通讯口已经设置完毕,下面就是如何根据要求将数据发送给变频器。
   例如一组8字节控制数据如下所示:
   01h ---->变频器编号
   03h ---->命令
   21h ---->两字节参数地址
   02h
   00h ---->两字节参数
   02h
   CRC --->两字节CRC校验马
   CRC
  
   PLC程序:
  
   Set485TBAddPointer(0);
   AddNumberTo485TB(0x1);
   AddNumberTo485TB(0x3);
   AddNumberTo485TB(0x21);
   AddNumberTo485TB(0x2);
   AddNumberTo485TB(0x0);
   AddNumberTo485TB(0x2);
   AddCRCTo485TB();
   Start485Transmit();

全部回复(4 )

只看楼主 我来说两句
  • dongba999
    dongba999 沙发
    啥意思?
    2006-08-10 15:22:10

    回复 举报
    赞同0
  • 铁牛66
    铁牛66 板凳
    这是在打广告吧???
    2006-07-22 21:57:22

    回复 举报
    赞同0
加载更多
这个家伙什么也没有留下。。。

工业自动化

返回版块

17.93 万条内容 · 385 人订阅

猜你喜欢

阅读下一篇

西门子S7-200常见问题

·模拟量模板EM235的输入电阻是多少?   输入电阻的大小和您所选择的输入类型有关,如果您选择电压输入,这样输入阻抗不小10兆欧;如果选择电流输入则输入抗为250欧姆 ·在应用EM231RTD模块的时候其测量值代表什么含义?   当您应用EM231RTD模块的时候,将其测量值除以10.0就是实际的温度值。模块本身能够测量的范围是-3276.8到3276.7摄氏度,但实际测量值的范围取决于传感器的测量范围和实际温度。

回帖成功

经验值 +10