概述

在第二个示例中,我们将编写一个递增整数值的便笺本地区OptoMMP内存映射。

这个例子的目的是:

  • 客户端将连接并尝试重新连接是否存在任何错误。
  • 尽可能将触发的写请求。处理请求的响应之后,下一个将被触发。

这个示例假设您基本熟悉CODESYS开发系统的创建和运行应用程序。它还假设您已经阅读了你好,世界!的例子。

第一步,确定OptoMMP地址使用

的值将被写入元素0便笺本32位整数。

OptoMMP内存映射地址可以确定在两个方面。

  1. 在“附录A:抓PAD-READ /写”部分OptoMMP协议指南(1465)形式
  2. MMP计算器工具groov管理。从主页,点击I / O > > MMP的计算器的I / O服务。

OptoMMP内存映射的地址是0 xf0d81000

步骤2 -创建和准备项目

  1. 创建或打开一个应用程序内的CODESYS开发系统。
  2. 确保光电子22图书馆,3.0.0.0或更高版本,添加到库管理器。
  3. 创建一个新的POU命名MMP_WRITE_INTEGER与连续函数图表(CFC)作为实现语言。
  4. 新项目添加到任务配置。
  5. 添加以下变量的声明区域MMP_WRITE_INTEGER程序。

    程序MMP_WRITE_INTEGER VAR mmpClient: OPTO.MmpClient;mmpWriteUDINT: OPTO.MmpClientWriteUDINT;udiVar: UDINT;END_VAR
  6. 拖出一个盒子到氟编辑和分配它添加函数。
  7. 配置输入和输出:

    CODESYS MMP的例子

    这将加1udiVar每次氯氟化碳计划。

步骤3——初始化MmpClient实例

通常是可取的,让尽可能多的客户端连接。这可以通过客户端来完成xError输出,否定它,然后回传给它xConnect输入。

  1. 在声明编辑器中,双击mmpClient变量,并将其拖动到实现区域。
  2. 分配“127.0.0.1”sAddress
  3. 连接xError输出到xConnect输入。
  4. 请取消新connecing线。
  5. 右键单击销xError并选择否定。这将添加一个小圆的连接线离开xError。确保没有另一个圆的连接线的另一端。

    CODESYS MMP的例子

连接xErrorxConnect以这种方式将使以下行为:

  • 最初,xError,这导致xConnect真正的并开始连接过程。
  • 连接时,xError仍然是xConnect仍然是真正的
  • 一旦连接,xConnected就变成了真正的,xError仍然是,xConnect仍然是真正的
  • 如果有一个错误(在连接或连接一次),xError就变成了真正的这迫使xConnect
    • 在下一个周期,过程开始了。由于状态改变xConnect,xError清除和回到,发送xConnect真正的一次。

它可能需要一个或多个PLC周期的状态变化来完成。

步骤4——初始化MmpClientWriteUDINT实例

  1. 在声明编辑器中,双击mmpWriteUDINT变量,并将其拖动到实现区域。
  2. 的一些输入需要设置。
    1. 分配1000000udiTimeOut
    2. 分配16 # F0D81000udiMmpAddress
      • 这是OptoMMP内存映射在步骤1中确定的地址。
    3. 分配mmpClientrClient
      • 这是一个参考给客户机。

    CODESYS MMP的例子

如上所概述的这个例子中,我们要写udiVar尽可能多的价值。这可以通过MmpClientWriteUDINT块的xBusy输出,否定它,然后回传给它xExecute输入。

  1. 连接xBusy输出到xExecute输入。
  2. 请取消新connecing线。
  3. 右键单击销xBusy并选择否定。这将添加一个小圆的连接线离开xError。确保没有另一个圆的连接线的另一端。

    CODESYS MMP的例子

连接xBusyxExecute以这种方式将继续写尽可能多的价值。

  • 最初,xBusy,这导致xExecute真正的并开始这个过程。
  • 在执行,xBusy成为和保持真正的xExecute就变成了。这并不阻止当前请求正在处理。
  • 一旦完成了响应处理,xBusy就变成了,导致xExecute成为真正的,从而启动下一个请求。
  • 如果有一个错误,xError就变成了真正的xBusy就变成了,这迫使xExecute真正的,从而启动下一个请求。
    • 现实世界的应用程序可能需要更复杂的错误处理。
    • 常见的错误会造成MmpClient不连接,例如当第一个启动程序或在一个网络的问题。请求尽可能仍然可以运行,但是很快就会报告一个错误,再试一次。一旦客户端连接,下一个请求应该成功。
  • 更多细节在CODESYS帮助文档边缘触发功能块公共行为模型

最后,我们需要养活thudiVar变量到写块中。可以通过直接分配udiVarudiData输入。或者,更直观的方法,添加块可以连接到写块,像这样:

CODESYS MMP的例子

最后的程序应该如下:

CODESYS MMP的例子

步骤5 -运行并查看结果

在运行应用程序之前,使用groov管理查看便笺本价值。

  1. groov管理,导航到家里> I / O > >便笺本I / O服务。
  2. 对于数据类型,选择32位整数
  3. 对于索引,输入0
  4. 对于长度,输入1或者更多。

回到CODESYS:

  1. 进入在线模式。
  2. 运行应用程序。

如果一切顺利,应该有一个坚实的客户之间的蓝线xError输出和xConnect输入。写块的xBusy之间应该骑自行车真正的,因为每个请求完成。

CODESYS MMP的例子

在便笺本页面groov管理、便笺本元素应该增加。CODESYS MMP的例子

梯子逻辑版本

这个例子在梯子逻辑(LD)非常相似。这里有一个方法可以写成:

CODESYS MMP的例子

结构化文本版本

这个例子在文本结构(ST)非常相似。这里有一个方法可以写成:

CODESYS MMP的例子

下一个步骤

继续的阅读一个整数数组的例子。