ERTEC200P-2 PROFINET设备完全开发手册(5-1)

5.1 非周期通讯

非周期通讯,顾名思义,表示这种通讯并不是在每个通讯周期都要进行的通讯,也叫做异步通讯或者非实时通讯。非周期通讯访问的数据叫做数据记录(record data)。一般情况下,以下三个名词表示的是一个意思

  • 非周期通讯
  • 异步通讯
  • 读写数据记录

这类通讯都是由控制器(PLC)发起,分为读数据记录操作和写数据记录操作。非周期通讯的功能一般有

  1. 模块的初始化配置参数 - 例如:模拟量通道的选择(0-10V或4-20ma),网关的配置(串口波特率,modbus地址),这些参数定义在GSDML文件中,可以由用户在项目组态时配置。配置的值在设备建立连接时由控制器写入到设备数据记录中。
  2. 模块的运行或诊断参数 - 例如:变频器的输出功率,功率限幅或者诊断缓冲,这些参数通过控制器的控制程序不定期读取或写入,完成特定的控制工艺。
  3. PROFINET协议定义的标准数据记录 - 这类数据的操作由协议栈实现,并不需要额外的开发
  • 配置通讯接口相关的参数(例如IRT参数)(index = 0x8030)
  • 设备的识别维护信息例如(I&M
  • ModuleDiffBlock

PROFINET协议定义的部分标准数据记录

数据记录的寻址由以下参数指定

  • API (0: 标准API 1 ... 0xFFFF 行规定义)
  • slot (0 ... 0x7FFF)
  • subslot (1 ... 0x7FFF)
  • index ( 0..0x7FFF用户定义 ,8000 ... 0xAFFF, 0xB000 ... 0xBFFF 行规定义)

举例来说,设备的slot 1, subslot 1 是一个模拟量输入模块,我们可以定义一个参数控制通道的选择(0-10V或4-20ma),index为0x0008。控制器可以通过(API =0,slot = 1,subslot = 1,index = 0x0008)去读写这个参数。

协议栈中实现了一个示例数据记录的操作,在GSDML文件中定义的64Bytes数字量输入中

<!-- ================================== -->
<!--         64 byte digital input      -->
<!--   (param-rec, support PROFIenergy) -->
<!-- ================================== -->
<ModuleItem ID="ID_Mod_11" ModuleIdentNumber="0x00000030">
<ModuleInfo>…</ModuleInfo>
  <VirtualSubmoduleList>
   <VirtualSubmoduleItem … >
    <IOData>…</IOData>
    <RecordDataList>
        <ParameterRecordDataItem Index="1" Length="4" TransferSequence="0">
        <Name TextId="T_general_parameter"/>
        <Const Data="0x30,0x01,0x56,0x78" ByteOffset="0"/>
        </ParameterRecordDataItem>
     </RecordDataList>
     <ModuleInfo>…</ModuleInfo>
     <PROFIenergy ProfileVersion="V1.1" EntityClass="Class3">…</PROFIenergy>
    </VirtualSubmoduleItem>
  </VirtualSubmoduleList>
</ModuleItem>

我们可以看到模块“64 bytes 输入“<RecordDataList></RecordDataList>定义了一个index=1 长度为4字节的数据记录,这里的参数是一组固定值"0x30,0x01,0x56,0x78"。也可以改变格式成为用户输入,这样在TIA Portal中就可以项目组态中配置这个参数了,具体的实现方式会在下一章中介绍。同理,模块“64 bytes 输出“也定义了一个index=1 长度为4字节的数据记录,参数值固定"0x31,0x01,0x56,0x78"

协议栈中,数据记录的读写操作分别对应PnUsr_cbf_rec_readPnUsr_cbf_rec_write这两个回调函数。在PnUsr_cbf_rec_write中

...

根据传入的index执行不同的配置功能。index=1时,协议栈只是将接收的配置参数打印到串口终端。配置参数在设备建立连接时由PLC写入到设备数据记录中,在串口终端我们可以看到GSDML定义的数值已经写入到设备中。

 

 两个打印信息分别对应 Slot 1的 “64 bytes 输入“和Slot 2的” 64 bytes 输出“

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值