回复:PLC和带485的传感器如何通讯

未尽

  • 帖子

    881
  • 精华

    6
  • 被关注

    7

论坛等级:侠士

注册时间:2006-04-11

普通 普通 如何晋级?

发布于 2008-05-22 12:00:27

0楼

quote:以下是引用jari在2008-05-21 17:06:09的发言:
quote:以下是引用dcount107在2008-05-21 13:33:41的发言:
LADDR指得是用来做485通讯PLC模块的地址(比如CP340或31xC-PTP集成口)
DB62是SFB的背景数据块
RD_1是你接收到的数据存放所在

这种说法是错误的,LADDR指的是通讯对像的地址,PLC模块的地址是在CPU属性里设的。

不对,请看SFB61的说明:
描述

使用SFB RCV_PTP (SFB 61)可以接收数据,然后将其归档到数据块。

数据块被调用后,且控制输入EN_R为TRUE时,数据块即准备就绪接收数据。将参数EN_R的信号状态置为FALSE,则可取消当前传送。被取消的作业将以错误消息(STATUS
输出)终止。只要参数EN_R的信号状态置为FALSE,此输入关闭。

接收区域在RD_1 (DB编号和起始地址)中声明。数据块长度在LEN中声明。

要使能SFB处理作业,必须使用R(复位)=FALSE调用。当控制输入R为上升沿时,将中止当前传送并将SFB复位为基本状态。被取消的作业将以错误消息(STATUS输出)终止。

对于子模块,应在LADDR中声明已在"HW Config"中指定的I/O地址。

如果作业无错误终止,则将NDR置为TRUE,如果作业错误终止,则将ERROR置为TRUE。

在STATUS中,CPU将指示错误,或者出现警告时,指示各自的事件ID。

复位(R=TRUE) SFB时,还将输出NDR或ERROR/STATUS (参数LEN = 16#00)。

如果已发生错误,则复位二进制结果BIE。如果块无错终止,二进制结果的状态为TRUE。
这段描述说明,LADDR中是PLC系统中485模块本身的地址,一般在组态时自动分配地址,也可以自行指定! SFB61和62一般用于点对点通信(PTP),这样就不存在外部设备数据无法分辩的问题,如硬要用在点对多点的场合,那对外部设备数据的区分只能是在通信数据帧内完成了!一般来说,很多仪表的通信协议里都包含的有地址信息!用这个地址信息来区分不同设备的数据!

此外,SFB62是用来清除模块的整个输入缓冲区的。
好好生活,天天向上!
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54390条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

top
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。