LE的通讯问题 点击:388 | 回复:2



hollysys2013

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 0回
  • 年度积分:0
  • 历史总积分:5
  • 注册:2013年4月24日
发表于:2013-10-08 15:46:57
楼主

哪位大侠给发一个LE的自由口的通讯例子程序。




KLMYM

  • 精华:0帖
  • 求助:4帖
  • 帖子:9帖 | 24回
  • 年度积分:0
  • 历史总积分:42
  • 注册:2013年8月09日
发表于:2013-10-09 15:03:12
1楼

两台LE PLC 通讯 ,       

 

 参数 波特率38400bps ,无校验,停止位1 ,数据位8,两台PLC参数一致

一、 中发送数据的PLC 调用自由协议通讯数据发送“COMM_SEND” 指令。

程序说明:
       通过Port 参数将通讯口设置为CPU 本体的圆形接口。
       EN_R 置位并保持时,将%MB200 的连续8 个字节(即%MB200-%MB207)顺序发送一次,Q 在发送完成的一个周期内等于TRUE,之后变为FALSE。
       EN_R 复位时,不进行发送。
       EN_R 每次由FALSE 变为TRUE(置位)时,发送一次数据。

 

 

二、接收数据的PLC 调用自由协议通讯数据接收  COMM_RECEIVE 指令

  

程序说明:
    在自由协议通讯状态下,上电Q 等于FALSE,当开始运行时第一个扫描周期准备接收8 个字节数据分别保存到%MB200-%MB207 中,接收成功后Q 等于TRUE,从而EN_R 等FALSE。下一个扫描周期时该指令不进行接收,Q 等于FALSE,从而EN_R 等于TRUE。再下一个扫描周期再次准备接收8 个字节数据分别保存到%MB200-%MB207 中,如此循环接收数据。

 

 

三、可参考《LE 系列可编程控制器指令手册》

国产007

  • 精华:2帖
  • 求助:0帖
  • 帖子:53帖 | 409回
  • 年度积分:0
  • 历史总积分:1676
  • 注册:2004年5月19日
发表于:2013-10-09 21:12:34
2楼

楼上的朋友解答的很细心,是对自由口所需指令的正确描述。


常用见的自由口通讯一般都为polling方式(即一问一答)需要牢记8个字:组帧、发送、接收、解析。可以形象的做一个类比:组帧-组织语言  发送-问话  接收-听到对方回话  解析-理解对方话的含义

和利时通过“COMM_SEND”“COMM_RECEIVE”两条指令解决了LE的RS485口的“发送”和“接收”问题。组帧和解析就要体现我们工程师的智慧了,主要表现在对协议的理解。

组帧:意思就是把一串16进制或字符型的询问帧按照通讯协议内容的要求放在COMM_SEND功能块的TBL中(即发送缓冲区)。

解析:就是从“COMM_RECEIVE”的TBL寄存器区中提取出有效的数据字节再转换成实际物理量的一个过程。

当然个别设备是主动上送数据,我们只需要调用COMM_RECEIVE功能块,然后从接收缓冲区里解析数据就行了。


热门招聘
相关主题

官方公众号

智造工程师