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

上传人:b****5 文档编号:7192063 上传时间:2023-01-21 格式:DOCX 页数:12 大小:323.23KB
下载 相关 举报
在SIMOTION中读取写入驱动器参数 及数据类型的转换.docx_第1页
第1页 / 共12页
在SIMOTION中读取写入驱动器参数 及数据类型的转换.docx_第2页
第2页 / 共12页
在SIMOTION中读取写入驱动器参数 及数据类型的转换.docx_第3页
第3页 / 共12页
在SIMOTION中读取写入驱动器参数 及数据类型的转换.docx_第4页
第4页 / 共12页
在SIMOTION中读取写入驱动器参数 及数据类型的转换.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

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

《在SIMOTION中读取写入驱动器参数 及数据类型的转换.docx》由会员分享,可在线阅读,更多相关《在SIMOTION中读取写入驱动器参数 及数据类型的转换.docx(12页珍藏版)》请在冰豆网上搜索。

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

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

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

1.应用概述

SIMOTION中读取及写入驱动器参数的函数为:

_readDriveParameter,_readDriveMultiParameter,_writeDriveParameter,_writeDriveMultiParameter。

SIMOTION最多可以同时处理16个参数读写任务,每个DP站只能允许一个任务。

SIMOTION通过_readDriveParameter,_readDriveMultiParameter函数可方便读取驱动器中的单个或多个参数值;通过_writeDriveParameter,_writeDriveMultiParameter函数可修改驱动器中的单个或多个参数值。

2.通讯报文的配置

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

3.建立程序

在D435中的“PROGRAM”中插入编程单元“LAD/FBDUNIT”,如”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                              从驱动器中读取的数据

                                     (BigEndian)                                ARRAY[0..233]OFBYTE

3.2_readDriveMultiParameter:

读取驱动器中的多个参数值

在“readparameter”程序中调用_readDriveMultiParameter函数来读取驱动器中的多个参数值(如P314,r0026),将函数拖曳到LAD网络中,如图5所示:

枚举类型变量的赋值可以使用MOVE指令。

图5._readDriveMultiParameter函数块

数据类型自动定义,在变量类型中选择变量存储的类型,如全局变量或本地变量。

参数含义如下:

ioId(optional):

可选项,不必填写

logAddress:

DINT数据类型,指定驱动器的逻辑地址

numberOfParameters:

UDINT数据类型,指定要读取驱动器参数的数量,设定范围:

1-39。

parameterNumber:

ARRAY[0..38]OFUDINT数据类型,指定要读取驱动器的参数号。

numberOfElements:

ARRAY[0..38]OFUDINT数据类型,指定要读取驱动器参数的索引数目。

0:

读取无索引号的参数不需填写。

1:

读取subIndex索引的参数。

n(n≥2):

从subIndex中指定的索引号开始读取n个参数值。

subIndex:

ARRAY[0..38]OFUDINT数据类型,指定要读取驱动器参数的索引号。

NEXTCOMMAND,COMMANDID:

与_readDriveParameter函数输入参数意义相同。

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

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

结构体元素                名称                                            数据类型

functionResult                函数调用的返回值                    DINT

parameterResult            参数指定的返回值                    ARRAY[0..38]OFDINT

dataLength                    读取参数的长度(字节数)         ARRAY[0..38]OFUDINT

data                              从驱动器中读取的数据

                                    (BigEndian)                                  ARRAY[0..233]OFBYTE

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]OFBYTE数据类型,指定被写入数据的起始地址(bytearray)。

函数的输出变量“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]OFUDINT数据类型,指定要写入驱动器的参数号。

numberOfElements:

ARRAY[0..22]OFUDINT数据类型,指定要写入驱动器参数的索引数量。

对于写入无索引号的参数不需填写。

0:

写入无索引号的参数不需填写。

1:

写入subIndex索引的参数。

n(n≥2):

从subIndex中指定的索引号开始写入n个参数值。

subIndex(optional):

ARRAY[0..22]OFUDINT数据类型,指定要写入驱动器参数的索引号。

对于无索引号的参数不需填写。

dataLength:

ARRAY[0..22]OFUDINT数据类型,指定要写入驱动器参数的数据长度(字节数)。

Data:

ARRAY[0..227]OFBYTE数据类型,指定被写入数据的起始地址(bytearray)。

NEXTCOMMAND,COMMANDID:

与_readDriveParameter函数输入参数意义相同。

函数的输出变量“WMOUT”为结构体数据类型,与_writeDriveParameter函数输出参数意义相同。

程序编写完成之后,将整个程序进行编译,并将其分配到系统执行集中,如图8所示,然后联机下传程序。

可以通过:

watchtable或相关程序的symbaolbrower进行变量赋值及在线监控。

图8:

分配程序

本例中将驱动器参数读写程序放置于“BackgroundTask”中运行(循环运行)。

注意:

(1)因读出的驱动器参数的数据类型为:

ARRAYOFBYTE,用户需使用数据转换函数将其转换成驱动器参数中定义的数据类型。

(2)写入驱动器参数时也需先将写入的数据转换成ARRAYOFBYTE数据类型。

请参看数据类型转换函数的使用说明。

4.示例程序

示例程序请参考附带文件:

Read_wri.zip (744KB)

二、Simotion中数据类型的转换

1.应用概述

SIMOTION中将“bytearray”类型数据转换成任意类型数据的函数为:

BigByteArray_to_AnyType(BigEndian-typebytearray)(siemens为此类型),LittleByteArray_to_AnyType(LittleEndian-typebytearray)。

2.建立程序

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

图1:

SIMOTION程序的创建

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

图2:

函数块的位置

3.函数介绍

在“matshalling”程序中调用“BigByteArray_to_AnyType”函数将“bytearray”类型数据转换成任意类型数据。

本程序示例将数据类型为“ARRAYOFBYTE”的数据转换为“REAL”类型(如将_readDriveParameter函数读出的驱动器r0026中的数值转换成“REAL”类型,用户可用转换后的值进行比较或判断。

将函数拖曳到LAD网络中,枚举类型变量的赋值可以使用MOVE指令,如图3所示:

图3.“BigByteArray_to_AnyType”函数块

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

图4.配置参数类型

数据类型自动定义,在变量类型中选择变量存储的类型,如全局变量或区域变量。

参数含义如下:

byteArray:

ARRAY[..]OFBYTE数据类型,指定需转换的数据。

offset(optional):

UDINT数据类型,指定数组中需转换的开始元素位置,必须设定为常数。

OUT:

函数的输出变量,任意数据类型。

程序编写完成之后,将整个程序进行编译,并将其分配到系统执行集中,如图5所示,然后联机下传程序。

可以通过:

watchtable或相关程序的symbaolbrower进行变量赋值及在线监控。

图5.分配程序

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

4.示例程序

示例程序请参考附带文件:

Read&wri.zip

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1