• {{item.name}}
{{item.name}}
{{item2.name}}
更多
操作指南

在SIMOTION中读取、写入驱动器参数及数据类型的转换

star star star star star
5.0 分
  • 通信(通讯)
  • SIMOVERT MASTERDRIVES
文档编号:A0073| 文档类型:操作指南| 发布时间:2024年03月13日
  • 0
  • 926
  • 7035
本文介绍了在SIMOTION中如何利用系统函数来实现驱动器参数的读取、写入以及数据类型的转换。

一、驱动器参数的读取及写入

1.应用概述
SIMOTION中读取及写入驱动器参数的函数为:_readDriveParameter,_readDriveMultiParameter,_writeDriveParameter ,_writeDriveMultiParameter。SIMOTION最多可以同时处理16个参数读写任务,每个DP站只能允许一个任务。
SIMOTION通过_readDriveParameter,_readDriveMultiParameter函数可方便读取驱动器中的单个或多个参数值;通过_writeDriveParameter ,_writeDriveMultiParameter函数可修改驱动器中的单个或多个参数值。

2.通讯报文的配置
在硬件配置中配置好驱动器的通讯报文


3.建立程序
在D435中的“PROGRAM”中插入编程单元“LAD/FBD UNIT”,如”RWPar”,在“UNIT”中插入程序如“readparameter”和“writeparameter”编写读取和写入驱动器参数的程序如图1所示,也可以将读取和写入驱动器参数的程序编写在同一个程序中。


图1: SIMOTION 程序的创建

本例中在“readparameter”程序中编写读取驱动器参数的程序,在“writeparameter”程序中编写写入驱动器参数的程序,相应的函数在函数库中的位置如图2所示:


图2: 函数块的位置


3.函数介绍

3.1 _readDriveParameter:读取驱动器中的一个参数值
在“readparameter”程序中调用_readDriveParameter函数来读取驱动器中的一个参数值(如P314),与STEP7编写方式相似,将函数拖曳到LAD网络中,枚举类型变量的赋值可以使用MOVE指令,如图3所示:


图3. _readDriveParameter 函数块

给所有的参数赋值,变量可以任意定义,如“Rnextcommand”变量,键入后选择变量类型如图4所示:


图4: 配置参数类型

数据类型自动定义,在变量类型中选择变量存储的类型,如全局变量或区域变量。
参数含义如下:
ioId (optional):
可选项,不必填写
logAddress:
DINT数据类型,指定驱动器的逻辑地址
parameterNumber:
UDINT数据类型,指定要读取驱动器的参数号
numberOfElements (optional):
UDINT数据类型,指定要读取驱动器参数的索引数目。
0: 读取无索引号的参数不需填写。
1: 读取subIndex索引的参数。
n(n≥2):从subIndex中指定的索引号开始读取n个参数值。
subIndex (optional):
UDINT数据类型,指定要读取驱动器参数的索引号。对于读取无索引号的参数不需填写。
NEXTCOMMAND:
枚举数据类型,元素中包括“IMMEDIATELY ”和“WHEN_COMMAND_DONE”,
“IMMEDIATELY”:下一个命令同步执行。
“WHEN_COMMAND_DONE”:命令执行后执行下一个命令,异步执行。
COMMANDID:
COMMANDID数据类型,可以跟踪命令的状态。

函数的输出变量 “RPOUT”为结构体数据类型,元素参考表1:

表1 函数RPOUT参数结构体数据

结构体元素                 名称                                            数据类型
functionResult                 函数调用的返回值                     DINT
parameterResult             参数指定的返回值                     DINT
dataLength                     读取参数的长度(字节数)          UDINT
data                               从驱动器中读取的数据
                                     (Big Endian)                                 ARRAY [0..233] OF BYTE

3.2 _readDriveMultiParameter:读取驱动器中的多个参数值
在“readparameter”程序中调用_readDriveMultiParameter 函数来读取驱动器中的多个参数值(如P314,r0026),将函数拖曳到LAD网络中,如图5所示:枚举类型变量的赋值可以使用MOVE指令。



图5. _readDriveMultiParameter函数块

数据类型自动定义,在变量类型中选择变量存储的类型,如全局变量或本地变量。
参数含义如下:
ioId (optional):
可选项,不必填写
logAddress:
DINT数据类型,指定驱动器的逻辑地址
numberOfParameters:
UDINT数据类型,指定要读取驱动器参数的数量,设定范围:1-39。
parameterNumber:
ARRAY [0..38] OF UDINT数据类型,指定要读取驱动器的参数号。
numberOfElements:
ARRAY [0..38] OF UDINT数据类型,指定要读取驱动器参数的索引数目。
0: 读取无索引号的参数不需填写。
1: 读取subIndex索引的参数。
n(n≥2):从subIndex中指定的索引号开始读取n个参数值。
subIndex:
ARRAY [0..38] OF UDINT数据类型,指定要读取驱动器参数的索引号。
NEXTCOMMAND ,COMMANDID:
与_readDriveParameter函数输入参数意义相同。
函数的输出变量 “RMOUT”为结构体数据类型,元素参考表2:

表2 函数RMOUT参数结构体数据

结构体元素                 名称                                             数据类型
functionResult                 函数调用的返回值                     DINT
parameterResult             参数指定的返回值                     ARRAY [0..38] OF DINT
dataLength                     读取参数的长度(字节数)          ARRAY [0..38] OF UDINT
data                               从驱动器中读取的数据
                                    (Big Endian)                                   ARRAY [0..233] OF BYTE

3.3 _writeDriveParameter:写驱动器中的一个参数值
在“writeparameter”程序中调用_writeDriveParameter函数来写入一个驱动器参数值(如P0120),将函数拖曳到LAD网络中,如图6所示:枚举类型变量的赋值可以使用MOVE指令。



图6. _writeDriveParameter函数块

数据类型自动定义,在变量类型中选择变量存储的类型,如全局变量或本地变量。
参数含义如下:
ioId (optional):
可选项,不必填写
logAddress:
DINT数据类型,指定驱动器的逻辑地址。
parameterNumber:
UDINT数据类型,指定要写入驱动器的参数号。
numberOfElements (optional):
UDINT数据类型,指定要写入驱动器参数的索引数量。对于写入无索引号的参数不需填写。
0: 写入无索引号的参数不需填写。
1: 写入subIndex索引的参数。
n(n≥2):从subIndex中指定的索引号开始写入n个参数值。
subIndex (optional):
UDINT数据类型,指定要写入驱动器参数的索引号。对于无索引号的参数不需填写。
NEXTCOMMAND ,COMMANDID:
与_readDriveParameter函数输入参数意义相同。
dataLength:
UDINT数据类型,指定要写入驱动器参数的数据长度(字节数)。
Data:
ARRAY [0..227] OF BYTE数据类型,指定被写入数据的起始地址(byte array)。
函数的输出变量 “WOUT”为结构体数据类型,元素参考表3:

表3 函数WOUT参数结构体数据

结构体元素                     名称                                         数据类型
functionResult                     函数调用的返回值                 DINT
parameterResult                 参数指定的返回值                 DINT

3.4 _writeDriveMultiParameter:写驱动器中的多个参数值
在“writeparameter”程序中调用_writeDriveMultiParameter函数来写入多个驱动器参数值(如P0120,P0140),将函数拖曳到LAD网络中,如图7所示:枚举类型变量的赋值可以使用MOVE指令。



图7. _writeDriveMultiParameter函数块

数据类型自动定义,在变量类型中选择变量存储的类型,如全局变量或区域变量。
参数含义如下:
ioId (optional):
可选项,不必填写
logAddress:
DINT数据类型,指定驱动器的逻辑地址。
numberOfParameters:
UDINT数据类型,指定要写入驱动器参数的数量,设定范围:1-23。
parameterNumber:
ARRAY [0..22] OF UDINT数据类型,指定要写入驱动器的参数号。
numberOfElements:
ARRAY [0..22] OF UDINT数据类型,指定要写入驱动器参数的索引数量。对于写入无索引号的参数不需填写。
0: 写入无索引号的参数不需填写。
1: 写入subIndex索引的参数。
n(n≥2):从subIndex中指定的索引号开始写入n个参数值。
subIndex (optional):
ARRAY [0..22] OF UDINT数据类型,指定要写入驱动器参数的索引号。对于无索引号的参数不需填写。
dataLength:
ARRAY [0..22] OF UDINT数据类型,指定要写入驱动器参数的数据长度(字节数)。
Data:
ARRAY [0..227] OF BYTE数据类型,指定被写入数据的起始地址(byte array)。
NEXTCOMMAND ,COMMANDID:
与_readDriveParameter函数输入参数意义相同。
函数的输出变量 “WMOUT”为结构体数据类型,与_writeDriveParameter函数输出参数意义相同。

程序编写完成之后,将整个程序进行编译,并将其分配到系统执行集中,如图8所示,然后联机下传程序。可以通过:watch table或相关程序的symbaol brower进行变量赋值及在线监控。


图8: 分配程序

本例中将驱动器参数读写程序放置于“BackgroundTask”中运行(循环运行)。注意:
(1)因读出的驱动器参数的数据类型为:ARRAY OF BYTE ,用户需使用数据转换函数将其转换成驱动器参数中定义的数据类型。
(2)写入驱动器参数时也需先将写入的数据转换成ARRAY OF BYTE数据类型。
请参看数据类型转换函数的使用说明。

4.示例程序
示例程序请参考附带文件:Read_wri.zip ( 744 KB )


二、Simotion中数据类型的转换

1.应用概述
SIMOTION中将“ byte array ”类型数据转换成任意类型数据的函数为:BigByteArray_to_AnyType(Big Endian-type byte array )(siemens为此类型),LittleByteArray_to_AnyType(Little Endian-type byte array)。

2.建立程序
在D435中的“PROGRAM”中插入编程单元“LAD/FBD UNIT”,如”Conver”,在“UNIT”中插入程序如“matshalling”编写数据转换程序如图1所示。


图1: SIMOTION 程序的创建

相应的函数在函数库中的位置如图2所示:


图2: 函数块的位置

3.函数介绍
在“matshalling” 程序中调用“BigByteArray_to_AnyType”函数将“ byte array ”类型数据转换成任意类型数据。本程序示例将数据类型为“ARRAY OF BYTE ”的数据转换为“REAL” 类型(如将_readDriveParameter函数读出的驱动器r0026中的数值转换成“REAL” 类型,用户可用转换后的值进行比较或判断。
将函数拖曳到LAD网络中,枚举类型变量的赋值可以使用MOVE指令,如图3所示:


图3. “BigByteArray_to_AnyType”函数块

给所有的参数赋值,变量可以任意定义,如“outvar”变量,键入后选择变量类型如图4所示:


图4. 配置参数类型

数据类型自动定义,在变量类型中选择变量存储的类型,如全局变量或区域变量。
参数含义如下:
byteArray:
ARRAY [..] OF BYTE数据类型,指定需转换的数据。
offset (optional) :
UDINT数据类型,指定数组中需转换的开始元素位置,必须设定为常数。
OUT:
函数的输出变量,任意数据类型。
程序编写完成之后,将整个程序进行编译,并将其分配到系统执行集中,如图5所示,然后联机下传程序。可以通过:watch table或相关程序的symbaol brower进行变量赋值及在线监控。


图5. 分配程序

本例中将数据转换程序放置于“BackgroundTask”中运行(循环运行)。

4.示例程序
示例程序请参考附带文件:Read&wri.zip

关键词
SIMOTION、驱动器参数读写、数据类型转换


您可以前往全球资源库查看此文档

剩余80%未阅读,请登录后下载/查看文档

  • 评论
更多
  • 分享

    扫码分享

提示
您即将前往“全球技术资源库”。
“全球技术资源库”的用户名与本地支持中心(下载中心、技术论坛、找答案、1847工业学习平台)的用户名不通用。如果需要在全球技术资源库下载文档,您需要重新登录或注册。
确定
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。