搜档网
当前位置:搜档网 › QML我们如何与C++一起使用

QML我们如何与C++一起使用

QML我们如何与C++一起使用
QML我们如何与C++一起使用

QML我们如何与C++一起使用,有一部份内容保持英文,方便理解

我们知道,通过Qt Declarative module ,C++可以动态创建和操纵QML的组件(cpmponents) ,我们利用这些API使用C++来拓展我们的QML程序,反过来也可以将QML 嵌入到你的C++程序中。通过Qt的元对象系统(Qt‘s metaobject system),我们可以利用Qt中的信号与槽机制使QML 和 Qt objects 相互通信(communicate)。另外,QML plugins 可以用来创建可复用的QML 组件。

使用C++和QML混合编程可能出于以下原因:

You may want to mix QML and C++ for a number of reasons. For example:

To use functionality defined in a C++ source (for example, when using a C++ Qt-based data model,

or calling functions in a third-party C++ library)

To access functionality in the Qt Declarative module (for example, to dynamically generate images usingQDeclarativeImageProvider)

To write your own QML elements (whether for your applications, or for distribution to others

首先我们介绍下Qt Declarative module 中几个核心的类:QDeclarativeEngine: QML的执行环境,负责解释执行QML代码。每一个程序都应至少包含一个engine 实例;

QDeclarativeComponent:创建一个封装了QML文件的组件;

QDeclaraContext:提供了一个允许C++程序将数据暴露给由QDeclaraEngine 创建的 QML 组件的上下文环境;

例如:

QDeclarativeEngine engine;

QDeclarativeComponent component(&engine, QUrl::fromLocalFile("MyRectangle.qml")); QObject *rectangleInstance = component.create();

delete rectangleInstance;

QObject * QDeclarativeComponent::create (QDeclarativeContext * context = 0) [virtual]

QML我们如何与C++一起使用

我们如何通过C++拓展我们的QML呢?

1.我们可以通过C++动态创建一个QML组件并且我们能够对它进行一些操作

2.我们可以使一个C++对象(比如:继承自QObject的类的对象)和他的属性作为一个QML 的组件

3.定义一个QML组件

Loading QML Components from C++

QDeclarativeComponent 将一个QML组件(文件)装载成一个C++ Object(对象)。使用QDeclarativeComponent需要调用QDeclarativeComponent::create()来创建一个组件的实例;QDeclarativeView同样也可以装载一个QML组件(文件),但是QDeclarativeView也继承自QGraphicsView ,所以他可以将QML组件或文件显示出来。另外他将自动的创建一个QML Component的实例(可以通过QDeclarativeView::rootObject()获得)两者用法区别

很明显。

import QtQuick 1.0

Item {

width: 100; height: 100

}

Using QDeclarativeComponent

QDeclarativeEngine engine;

QDeclarativeComponent component(&engine, QUrl::fromLocalFile("MyItem.qml")); QObject*object = component.create();

...

delete object;

object是MyItem.qml的C++实例。我们可以通过QObject::setProperty() or QDeclarativeProperty:设置Item的属性,比如:

object->setProperty("width",500);

QDeclarativeProperty(object,"width").write(500);

另外,我们将object进行类型转换,转换为其原来的类型,比如:

QDeclarativeItem*item = qobject_cast(object);

item->setWidth(500);

通过MetaObject::invokeMethod() 和QObject::connect(),我们可以连接、调用定义在component的函数。

下面我们来说如何获得子对象(上面我们得到是其根对象Item)

QObject::objectName property with QObject::findChild()

例如:

import QtQuick 1.0

Item {

width: 100; height: 100

Rectangle {

anchors.fill: parent

objectName: "rect"

}

}

上面的例子中裉对象Item有一个子对象Rectangle,我们该如何得到他呢?

QObject*rect = object->findChild("rect");

if (rect)

{

rect->setProperty("color","red");

}

还有一种情况需要考虑,在delegate(ListView,Repeater)或其他需要创建很多实例时会获得很多具有相同名字的子对象,我们用QObject::findChildren()可以得到所有具有相同名字的子对象。不推荐这么做。

进入下篇:

Embedding C++ objects into QML components

上面介绍了如何将QML中组件在C++中实例化,之后修改其属性。这一部分我们将介绍如何将C++ 对象嵌入到QML组件中。当我们将QML 载入到C++ 程序中时,能够直接将C++ data 数据传入QML object 是非常有用的。我们通过QDeclarativeContext,可以将C++数据暴露给QML 组件的上下文环境中,可以让C++ 数据注入到QML中。例如:我们有一个QML item 需要引用一个currentDateTime 值(这需要Qt来提供,在QML中无法获取系统时间)

// MyItem.qml import QtQuick 1.0

Text { text: currentDateTime }

此时我们可以用C++直接设置这个值。首先我们需要通过载入QML 组件(文件)QDeclarativeView view;

view.rootContext() //获得C++object

然后通过QDeclarativeContext::setContextProperty():设置currentDateTime QDeclarativeView view;

view.rootContext()->setContextProperty("currentDateTime",QDateTime::currentDateTime()); view.setSource(QUrl::fromLocalFile("MyItem.qml"));

view.show();

上下文属性值可以是QVariant (如上例),也可以是QObject* ,这些对象可以在QML中被读取修改。例如:

class ApplicationData : public QObject

{

Q_OBJECT

public:

Q_INVOKABLE QDateTime getCurrentDateTime() const

{

return QDateTime::currentDateTime();

}

};

int main(int argc,char*argv[])

{

QApplication app(argc, argv);

QDeclarativeView view;

ApplicationData data;

view.rootContext()->setContextProperty("applicationData",&data);

view.setSource(QUrl::fromLocalFile("MyItem.qml"));

view.show();

return app.exec();

}

Text {

text: applicationData.getCurrentDateTime()

Connections {

target: applicationData

onDataChanged: console.log("The application data changed!")

}

}

在QML中,也可以通过Connections element 接受来自上下文的信号。如上例,如果applicationData有一个信号dataChanged(),那么这个信号可以被一个Connnections elemnnt 接收,并有ondataChanged() handler。

补充:上下文属性是通过QDeclarativeContext::setContextProperty()来定义和更改(updated)的。在以C++ model中这些显得极为重要。例如:

QDeclarativeEngine engine;

QStringListModel modelData;

QDeclarativeContext*context =new QDeclarativeContext(engine.rootContext()); context->setContextProperty("myModel",&modelData);

QDeclarativeComponent component(&engine);

component.setData("import QtQuick 1.0\nListView { model: myModel }",QUrl()); QObject*window = component.create(context);

Qt model 先被绑定到一个上下文,基于此,model可以被QML访问。又如:

class MyDataSet : ...

{

...

Q_PROPERTY(QAbstractItemModel*myModel READ model NOTIFY modelChanged)

...

};

MyDataSet myDataSet;

QDeclarativeEngine engine;

QDeclarativeContext*context =new QDeclarativeContext(engine.rootContext()); context->setContextObject(&myDataSet);

QDeclarativeComponent component(&engine);

component.setData("import QtQuick 1.0\nListView { model: myModel }",QUrl()); component.create(context);

// 注意:

// context->setContextObject(&myDataSet);设置后,可以直接在QML中用myModel访问// Q_PROPERTY(QAbstractItemModel*myModel READ model NOTIFY modelChanged)

Defining new QML elements

QML当中的组件可以在C++中定义,这是很有必要的,这样可以写出更适合我们的组件(毕竟,大部分组件都需要我们自己实现,很多核心组件也是通过C++定义的)。

那么如何创建一个可视的组件呢?

我们需要使我们的类继承于QDeclarativeItem,而不应该是直接继承QObject。紧接

着我们可以实现自己的绘制函数和其他一些在QGraphicsObject中实现的函数。同时需要注意,QGraphicsItem::ItemHasNoCon是默认设置的,如果你想自己绘制,你应该修改它。例如:

#include

#include

class ImageViewer : public QDeclarativeItem

{

Q_OBJECT

Q_PROPERTY(QUrl image READ image WRITE setImage NOTIFY imageChanged) public:

void setImage(const QUrl &url);

QUrl image() const;

signals: void imageChanged();

};

接下来我们要注册这个类:

qmlRegisterType("MyLibrary",1,0,"ImageViewer");

这样我们就可以在我们的QML中使用了:

import MyLibrary 1.0

ImageViewer { image: "smile.png" }

Exchanging data between QML and C++

QML and C++ objects can communicate with one another through signals,

slots and property modifications 。

对于一个C++对象,其property,信号,slot(槽),和用Q_INVOKABLE声明的函数都可以在QML中访问。反过来,QML中所有的数据都可以被C++来访问。

Calling functions

1 QML所有的函数都可以被C++调用,比如:

// MyItem.qml

import QtQuick 1.0

Item {

function myQmlFunction(msg) {

console.log("Got message:", msg)

return"some return value"

}

}

// main.cpp

QDeclarativeEngine engine;

QDeclarativeComponent component(&engine,"MyItem.qml");

QObject*object = component.create();

QVariant returnedValue;

QVariant msg="Hello from C++";

QMetaObject::invokeMethod(object,"myQmlFunction",Q_RETURN_ARG(QVariant, returnedValue), Q_ARG(QVariant, msg));

qDebug() <<"QML function returned:"<< returnedValue.toString();

delete object;

需要注意的是Q_RETURN_ARG() and Q_ARG()参数都应该是QVariant类型的。

2 在QML中如何调用一个C++函数呢?

在QML中,能够被调用的函数有两种情况

(1)slot

(2)用Q_INVOKEABLE宏标记

如下例,其中通过myObject调用的函数已经由QDeclarativeContext::setContextProperty()处理.

// MyItem.qml

import QtQuick 1.0

Item {

width: 100; height: 100

MouseArea {

anchors.fill: parent

onClicked: {

myObject.cppMethod("Hello from QML")

myObject.cppSlot(12345)

}

}

}

QML可以调用C++中重载的函数。

Receiving signals

总结一下,QML中一切都可以被C++访问到,(All QML signals are automatically available to C++),QML中所有的信号可以被连接到C++的对象通过QObject::connect()。反过来讲,C++中的信号也可以在QML收到,通过signal handlers.

//MyItem.qml

import QtQuick 1.0

Item {

id: item

width: 100; height: 100

signal qmlSignal(string msg)

MouseArea {

anchors.fill: parent

onClicked: item.qmlSignal("Hello from QML")

}

}

class MyClass : public QObject

{

Q_OBJECT

public slots:

void cppSlot(const QString &msg)

{

qDebug() << "Called the C++slot with message:" << msg;

}

};

int main(int argc, char *argv[])

{

QApplication app(argc, argv);

QDeclarativeView view(QUrl::fromLocalFile("MyItem.qml"));

QObject *item = view.rootObject();

MyClass myClass;

QObject::connect(item, SIGNAL(qmlSignal(QString)), &myClass, SLOT(cppSlot(QString)));

view.show();

return app.exec();

}

QML接收C++中的信号:

class ImageViewer : public QDeclarativeItem

{

Q_OBJECT

Q_PROPERTY(QUrl image READ image WRITE setImage NOTIFY imageChanged) public:

...

signals:

void imageChanged();

void loadingError(const QString &errorMsg);

};

ImageViewer {

onImageChanged: console.log("Image changed!")

onLoadingError: console.log("Image failed to load:", errorMsg)

}

还有一种情况:当Object不是在QML中创建的时,在QML中我们仅得到对象的一个引用。例如,object是由QDeclarativeContext::setContextProperty()定义的。这时我们需要用Connections element来代替signal handler

ImageViewer viewer;

QDeclarativeView view;

view.rootContext()->setContextProperty("imageViewer", &viewer);

view.setSource(QUrl::fromLocalFile("MyItem.qml"));

view.show();

//MyItem.qml

import QtQuick 1.0

Item {

Connections {

target: imageViewer

onImageChanged: console.log("Image has changed!")

}

}

Modifying properties

Any properties declared in a QML object are automatically accessible from C++。//MyItem.qml

import QtQuick 1.0

Item {

property int someNumber: 100

}

someNumber 可以通过QDeclarativeProperty 或者QObject::setProperty() 和QObject::property() 访问(read)和修改(set)

QDeclarativeEngine engine;

QDeclarativeComponent component(&engine, "MyItem.qml");

QObject *object = component.create();

qDebug() << "Property value:" << QDeclarativeProperty::read(object, "someNumber").toInt(); QDeclarativeProperty::write(object, "someNumber", 5000);

qDebug() << "Property value:" << object->property("someNumber").toInt(); object->setProperty("someNumber", 100);

需要注意的是,我们总是应该用QObject::setProperty(),QDeclarativeProperty or QMetaProperty::write()来修改QML中属性的值,这样可以让QML engine 意识到属性值的改变。我们不应该这么做:

//BAD!

QDeclarativeComponent component(engine, "MyButton.qml");

PushButton *button = qobject_cast(component.create());

button->m_buttonText = "Click me";

This means property bindings to buttonTextwould not be updated, and any onButtonTextChanged handlers would not be called.所有由Q_PROPERTY()声明过的属性可以在QML中访问到。

class ApplicationData : public QObject

{

Q_OBJECT

Q_PROPERTY(QColor backgroundColor READ backgroundColor WRITE setBackgroundColor NOTIFY backgroundColorChanged)

public:

void setBackgroundColor(const QColor &c)

{

if (c != m_color)

{

m_color = c;

emit backgroundColorChanged();

}

}

QColor backgroundColor() const { return m_color; }

signals:

void backgroundColorChanged();

private:

QColor m_color;

};

//MyItem.qml

import QtQuick 1.0

Rectangle {

width: 100; height: 100

color: applicationData.backgroundColor

MouseArea {

anchors.fill: parent

onClicked: applicationData.backgroundColor = "red"

}

}

Notice the backgroundColorChanged signal is declared as the NOTIFY signal for the backgroundColor property.

If a Qt property does not have an associated NOTIFY signal, the property cannot be used for Property Binding in QML,as the QML engine would not be notified when the value changes. If you are using custom types in QML, make sure their properties have NOTIFY signals so that they can be used in property bindings.

Supported data types

传入QML 的C++数据必须是QML支持的。默认的:

bool

?unsigned int, int

?float, double, qreal

?QString

?QUrl

?QColor

?QDate, QTime, QDateTime

?QPoint, QPointF

?QSize, QSizeF

?QRect, QRectF

?QVariant

?QVariantList, QVariantMap

?QObject*

?Enumerations declared with Q_ENUMS()

如果我们想将一个我们自己定义的C++ 类型在QML中使用,我们必须将C++ class 通过qmlRegisterType()注册一下。

#include

#include

class ImageViewer : public QDeclarativeItem

{

Q_OBJECT

Q_PROPERTY(QUrl image READ image WRITE setImage NOTIFY imageChanged) public:

void setImage(const QUrl &url);

QUrl image() const;

signals:

void imageChanged();

};

qmlRegisterType("MyLibrary",1,0,"ImageViewer");

JavaScript arrays and objects

QVariantList and JavaScript arrays, and QVariantMap and JavaScript objects可以自动转换例如:

//MyItem.qml

Item {

function readValues(anArray, anObject) {

for (var i=0; i

console.log("Array item:", anArray[i])

for (var prop in anObject) {

console.log("Object item:", prop, "=", anObject[prop])

}

}

}

//C++

QDeclarativeView view(QUrl::fromLocalFile("MyItem.qml"));

QVariantList list;

list << 10 << Qt::green << "bottles";

QVariantMap map;

map.insert("language", "QML");

map.insert("released", QDate(2010, 9, 21));

QMetaObject::invokeMethod(view.rootObject(), "readValues", Q_ARG(QVariant, QVariant::fromValue(list)), Q_ARG(QVariant, QVariant::fromValue(map)));

Array item: 10

Array item: #00ff00

Array item: bottles

Object item: language = QML

Object item: released = Tue Sep 21 2010 00:00:00 GMT+1000

Using enumerations of a custom type

如果想在QML中使用一个来自C++类型的组件中的枚举类型,我们需要用 Q_ENUMS()声明,将其注册到Qt的元对象系统。例如:

class ImageViewer : public QDeclarativeItem

{

Q_OBJECT

Q_ENUMS(Status)

Q_PROPERTY(Status status READ status NOTIFY statusChanged)

public:

enum Status { Ready, Loading, Error };

Status status() const;

signals:

void statusChanged();

};

假设我们已经将 ImageViewer class注册过了(qmlRegisterType()),我们就可以在QML中使用这个枚举类型.

ImageViewer {

onStatusChanged: {

if (status == ImageViewer.Ready)

console.log("Image viewer is ready!")

}

}

注意:The C++ type must be registered with QML to use its enums. If your C++ type is not instantiable, it can be registered using qmlRegisterUncreatableType(). To be

accessible from QML, the names of enum values must begin with a capital letter.

Using enumeration values as signal parameters(未译)

C++ signals may pass enumeration values as signal parameters to QML, providing that the enumeration and the signal are declared within the same class, or that the enumeration value is one of those declared in the Qt Namespace.

Additionally, if a C++ signal with an enum parameter should be connectable to a QML function using the connect() function, the enum type must be registered using qRegisterMetaType().

For QML signals, enum values may be used as signal parameters using the int type:

ImageViewer {

signal someOtherSignal(int statusValue)

Component.onCompleted: {

someOtherSignal(ImageViewer.Loading)

}

}

Automatic type conversion from strings

方便起见,一些基本的QML数据类型可以通过格式化的字符串传递给C++

Type String format Example

QColor Color name, "#RRGGBB",

"#RRGGBBAA"

"red", "#ff0000",

"#ff000000"

QDate"YYYY-MM-DD" "2010-05-31" QPoint"x,y" "10,20" QRect"x,y,WidthxHeight" "50,50,100x100" QSize"WidthxHeight" "100x200" QTime"hh:mm:ss" "14:22:55"

QUrl URL string "http://www.example.co m"

QVector3D"x,y,z" "0,1,0"

Enumeration

Enum value name "AlignRight"

value

Writing QML plugin

QDeclarativeExtensionPlugin classallows QML extension types to be dynamically loaded into QML applications.

QDeclarativeExtensionPlugin( QObject *parent= 0 )

To write a QML extension plugin:

?Subclass QDeclarativeExtensionPlugin, implement registerTypes() method to

register types using qmlRegisterType(), and export the class using

the Q_EXPORT_PLUGIN2() macro

?Write an appropriate project file for the plugin

?Create a qmldir file to describe the plugin

An example

Suppose there is a new TimeModel C++ class that should be made available as a new QML element. It provides the current time through hour and minuteproperties, like this:

To make this class available as a QML type, create a plugin that registers this type with a specific module using qmlRegisterType(). For this example the plugin module will be named com.nokia.TimeExample (as defined in the project file further below).

This registers the TimeModel class with the 1.0 version of this plugin library, as a QML type called Time. The Q_ASSERT statement ensures the module is imported correctly by any QML components that use this plugin.

The project file defines the project as a plugin library and specifies it should be built into the com/nokia/TimeExample directory:

TEMPLATE = lib

CONFIG += qt plugin

QT += declarative

DESTDIR = com/nokia/TimeExample

TARGET = qmlqtimeexampleplugin

Finally, a qmldir file is required in the com/nokia/TimeExample directory that describes the plugin. This directory includes a Clock.qml file that should be bundled with the plugin, so it needs to be specified in the qmldir file:

Once the project is built and installed, the new Time element can be used by any QML component that imports the com.nokia.TimeExample module:

钳型电流表的使用方法及注意事项

https://www.sodocs.net/doc/0a600147.html, 钳型电流表的使用方法及注意事项 一、使用说明 平常一些我们了利用普通电流表测量电流时,需要将电路切断停机后才能将电流表接入进行测量,这是很麻烦的,有时正常运行的电动机是不允许这样做的。此时,使用钳形电流表就显得方便多了,可以在不切断电路的情况下来测量电流。 钳形电流表工作原理: 钳形电流表是由电流互感器和电流表组合而成。电流互感器的铁心在捏紧扳手时可以张开;被测电流所通过的导线可以不必切断就可穿过铁心张开的缺口,当放开扳手后铁心闭合。穿过铁心的被测电路导线就成为电流互感器的一次线圈,其中通过电流便在二次线圈中感应出电流。从而使二次线圈相连接的电流表便有指示-----测出被测线路的电流。钳形

https://www.sodocs.net/doc/0a600147.html, 表可以通过转换开关的拨档,改换不同的量程。但拨档时不允许带电进行操作。钳形表一般准确度不高,通常为2.5——5级。为了使用方便,表内还有不同量程的转换开关供测不同等级电流以及测量电压的功能。 二、使用方法 1、在使用钳形电流表前应仔细阅读说明书,弄清是交流还是交直流两用钳形表。 2、钳形表每次只能测量一相导线的电流,被测导线应置于钳形窗口中央,不可以将多相导线都夹入窗口测量。 3、被测电路电压不能超过钳形表上所标明的数值,否则容易造成接地事故,或者引起触电危险。 4、使用高压钳形表时应注意钳形电流表的电压等级,严禁用低压钳形表测量高电压回路的电流。用高压钳形表测量时,应由两人操作,非值班人员测量还应填写第二种工作票,测量时应戴绝缘手套,站在绝缘垫上,不得触及其它设备,以防止短路或接地。 5、在高压回路上测量时,禁止用导线从钳形电流表另接表计测量。测量高压电缆各相电流时,电缆头线间距离应在300mm以上,且绝缘良好,待认为测量方便时,方能进行。 6、观测表计时,要特别注意保持头部与带电部分的安全距离,人体任何部分与带电体的距离不得小于钳形表的整个长度。 三、注意事项 (1)被测线路的电压要低于钳表的额定电压。 (2)当电缆有一相接地时,严禁测量。防止出现因电缆头的绝缘水平低发生对地击穿爆炸而危及人身安全。

505调节系统中文说明书

引言 505/505E是以微处理器为基础的调速器,适用于单执行机构或双执行机构的汽轮机控 制。调速器采用菜单驱动软件以引导现场工程师根据具体的发电机或机械驱动应用要求对调速器进行编程组态。本说明书主要介绍调速器的工作原理、系统构成、面板操作。由于英文版手册存在不断增加和更改内容等方面的因素,使用woodward 505/505E 时,还请 参考随调速器提供的woodward正式英文版手册。 二、505/505E 的工作原理及系统介绍 505/505E电子调节器比一般液压系统控制精度高,自动化水平大大提高,热电负荷 自整性也高,它能实现升速(手动或自动),配合电气并网,负荷控制(阀位控制或功频控制),抽汽热负荷控制及其它辅助控制,并与DCS通讯,控制参数在线调整和超速保护功能等。能使汽轮机适应各种工况并长期安全运行。 2.1基本原理 并网前在升速过程中,转速闭环为无差控制,505/505E控制器将测量的机组实际和给 定转速的偏差信号经软件分析处理及PID运算后输出标准电流信号给电液转换器,电液转 换器接受调节器输出的标准电流信号,输出与输入电流信号相对应的调节信号油压。调节 信号油压经液压伺服机构放大,控制油动机活塞移动,通过调节杠杆,改变调节汽阀的开 度,调节汽轮机高压段、低压段的进汽量。从而减少转速偏差,达到转速无差控制,当转速达到3000r/min,机组可根据需要定速运行,此时505/505E可接受自动准同期装置发出的或运行人员手动操作指令,调整机组实现同步,以便并网。 机组并网后,如果采用功率闭环控制,可根据需要决定505/505E使机组立即带上初

负荷,DEH实测机组功率和机组转速作为反馈信号,转速偏差作为一次调频信号对给定功 率进行修正,功率给定与功率反馈比较后,经PID运算和功率放大后,通过电液转换器和 油动机控制调节阀门开度来消除偏差信号,对机组功率实现无差调节,若功率不反馈,则以阀位控制方式运行,即通过增加转速设定,开大调节汽阀,增加进汽量达到增加负荷的目的。在甩负荷时,505/505E自动将负荷调节切换到转速调节方式。机组容量较小时建议可不采用功率闭环控制。 在机组带上一定电负荷后可根据需要带热负荷,投入抽汽控制。505/505E控制器根据 机组工况图对机组电负荷及抽汽压力进行自整控制。 2.2 505/505E 系统构成 505/505E是基于32位微处理器控制用的数字控制器。它集现场组态控制和操作盘于一体。操作盘包括一个两行(24个字符)显示,一个有30个操作键的面板,操作盘用来组态505/505E,在线调整参数和操作汽轮机起停及运行。通过操作面板上的两行液晶屏可观察控制参数的实际值和设定值。 控制回路/ / 505/505E 控制器内有三个相互独立的控制器通道:转速/负荷控制PID 回路、辅助控制PID回路、抽汽控制PID回路。前两者通过低选输出,另外有一个PID控制回路可串接在转速控制回路上用于串级控制。其通讯接口有三种。控制器有三种操作模式:程序模式、运行模式和服务模式,程序模式用于组态控制器的功能以适合具体的控制要求,程序模式一旦组态后不再改变,直至需要改变控制功能时。运行模式主要用于操作汽轮机启动正常运行至停机整个控制过程。服务模式可以在运行状态修改参数,根据具体汽轮机控制需要通过编程组态于相应的系统。 输入及输出//本系统控制器有两个控制回路输出4-20mA,负载能力为360ohm,同

日常工作中常用函数

AVERAGE函数 主要功能:求出所有参数的算术平均值。 使用格式:AVERAGE(number1,number2,……) 参数说明:number1,number2,……:需要求平均值的数值或引用单元格(区域),参数不超过30个。 应用举例:在B8单元格中输入公式:=AVERAGE(B7:D7,F7:H7,7,8),确认后,即可求出B7至D7区域、F7至H7区域中的数值和7、8的平均值。 特别提醒:如果引用区域中包含“0”值单元格,则计算在内;如果引用区域中包含空白或字符单元格,则不计算在内。 COUNTIF函数 主要功能:统计某个单元格区域中符合指定条件的单元格数目。 使用格式:COUNTIF(Range,Criteria) 参数说明:Range代表要统计的单元格区域;Criteria表示指定的条件表达式。 应用举例:在C17单元格中输入公式:=COUNTIF(B1:B13,">=80"),确认后,即可统计出B1至B13单元格区域中,数值大于等于80的单元格数目。 特别提醒:允许引用的单元格区域中有空白单元格出现 DATEDIF函数 主要功能:计算返回两个日期参数的差值。 使用格式:=DATEDIF(date1,date2,"y")、=DATEDIF(date1,date2,"m")、=DATEDIF(date1,date2,"d") 参数说明:date1代表前面一个日期,date2代表后面一个日期;y(m、d)要求返回两个日期相差的年(月、天)数。

应用举例:在C23单元格中输入公式:=DATEDIF(A23,TODAY(),"y"),确认后返回系统当前日期[用TODAY()表示)与A23单元格中日期的差值,并返回相差的年数。 特别提醒:这是Excel中的一个隐藏函数,在函数向导中是找不到的,可以直接输入使用,对于计算年龄、工龄等非常有效。 IF函数 主要功能:根据对指定条件的逻辑判断的真假结果,返回相对应的内容。 使用格式:=IF(Logical,Value_if_true,Value_if_false) 参数说明:Logical代表逻辑判断表达式;Value_if_true表示当判断条件为逻辑“真(TRUE)”时的显示内容,如果忽略返回“TRUE”;Value_if_false表示当判断条件为逻辑“假(FALSE)”时的显示内容,如果忽略返回“FALSE”。 应用举例:在C29单元格中输入公式:=IF(C26>=18,"符合要求","不符合要求"),确信以后,如果C26单元格中的数值大于或等于18,则C29单元格显示“符合要求”字样,反之显示“不符合要求”字样。 特别提醒:本文中类似“在C29单元格中输入公式”中指定的单元格,读者在使用时,并不需要受其约束,此处只是配合本文所附的实例需要而给出的相应单元格,具体请大家参考所附的实例文件。 INDEX函数 主要功能:返回列表或数组中的元素值,此元素由行序号和列序号的索引值进行确定。 使用格式:INDEX(array,row_num,column_num) 参数说明:Array代表单元格区域或数组常量;Row_num表示指定的行序号

《工具书使用》第二次网上作业答案说课材料

《工具书使用》第二次网上作业答案 你的得分: 100.0 完成日期:2018年01月29日 15点11分 说明:每道小题选项旁的标识是标准答案。 一、单项选择题。本大题共20个小题,每小题 2.0 分,共40.0分。在每小题给出的选项中,只有一项是符合题目要求的。 1.《二十五史纪传人名索引》收录《二十四史》和()中有纪传的人名. A.《汉书》 B.《清史稿》 C.《宋史》 D.《明史》 2.历表可用于查考历史年代、历史纪元和()。 A.查考历史大事 B.查考换算不同历法的年、月、日 C.查考地理沿革 D.查考人物生卒年 3.《经传释词》的作者是( )。 A.阮元 B.刘淇 C.王引之 D.杨树达 4.从著录内容上看,地名录比地名词典()。 A.丰富全面 B.收录地名少 C.简明扼要 D.收录旧地名 5.主题法的显著特点在于直接性、()和集中性。 A.系统性 B.快捷性

C.易用性 D.专指性 6.我国第一部语源词典为()。 A.《尔雅》 B.《释名》 C.《说文解字》 D.《正字通》 7.查近期出版和正在出版的图书,可利用()。 A.《全国总书目》 B.《全国新书目》 C.《中国国家书目》 D.《新华书目报》 8.《中国大百科全书》的《总索引》是按()并辅之以汉字笔画、起笔笔 形顺序排列的。 A.汉语拼音字母 B.部首 C.四角号码 D.时序法 9.图录包括地图和()。 A.交通图 B.航海图 C.历史图录 D.世界图 10.“固”字的四角号码是()。 A.7760 B.6000 C.2760 D.6060

11.年鉴按其表述手段可分为综述性年鉴和()。 A.综合性年鉴 B.地方年鉴 C.国际年鉴 D.统计性年鉴 12.书目的三个基本特征是:揭示与描述一批相关图书、描述每种图书的基本 特征和()。 A.揭示内容 B.揭示范围广 C.把一定范围的款目按一定的排检法加以组织,以供检索 D.标明出处 13.我国最早的词典是()。 A.《切韵》 B.《尔雅》 C.《广韵》 D.《集韵》 14.我国最早用“字典”正式命名的字典,是清代张玉书,陈敬延等编的()。 A.《古汉语常用字字典》 B.《中华大字典》 C.《汉语大字典》 D.《康熙字典》 15.下列属于类书的是()。 A.《助字辨略》 B.《康熙字典》 C.《古今图书集成》 D.《永乐大典》 16.我国第一部按部首编排的字典是()。 A.《康熙字典》 B.《字汇》 C.《辞源》 D.《说文解字》

钳形表与三相四线表使用方法及注意事项

一、功率与电能测量方法: 1.1 功率测量方法 (1). 直接法:测量功率可直接用电动系功率表、数字功率表或三相功率表,测量三相功率还可以用单相功率表接成两表法或三表法,虽然有求和过程,但一般仍将它归为直接法. (2). 间接法:直流可通过测量电压、电流间接求得功率。交流则需要通过电压、电流和功率因数求得功率。 1.2 电能测量方法 (1). 直接法:直接测量电能,直流可使用电动系电能表,交流用感应系或电子电能表。 (2). 间接法:电能测量一般不用间接法,只有在功率稳定不变的情况下用功率表和记时时钟进行测量。 二.钳形电流表的应用 钳形电流表按结构原理不同分为磁电式和电磁式两种,磁电式可测量交流电流和交流电压;电磁式可测量交流电流和直流电流。钳形表俯视图如图1.1所示: 图1.1 钳形表俯视图

钳形表机械图如图1.2所示: 图1.2 钳形表机械视图 2.1.钳形电流表的使用方法和使用时应注意的事项 (1). 在进行测量时用手捏紧扳手即张开,被测载流导线的位置应放在钳口中间,防止产生测量误差,然后放开扳手,使铁心闭合,表头就有指示。 (2). 测量时应先估计被测电流或电压的大小,选择合适的量程或先选用较大的量程测量,然后再视被测电流、电压大小减小量程,使读数超过刻度的1/2,以便得到较准确的读数。 (3). 为使读数准确,钳口两个面应保证很好的接合,如有杂声,可将钳口重新开合一次,如果声音依然存在,可检查在接合面上是否有污垢存在,如有污垢,可用汽油擦干净。 (4). 测量低压可熔保险器或低压母线电流时,测量前应将邻近各相用绝缘板隔离,以防钳口张开时可能引起相间短路。 (5). 有些型号的钳形电流表附有交流电压刻度,测量电流、电压时应分别进行,不能同时测量。 (6). 不能用于高压带电测量。 (7). 测量完毕后一定要把调节开关放在最大电流量程位置,以免下次使用时由于未经选择量程而造成仪表损坏。

505操作说明

505操作说明 一、505一般介绍 (一)505转速控制器的键盘和显示器 505转速控制器的操作屏由操作面板上的键盘和显示器组成。显示器具有二行,每行显示14个字符,用于以英文显示运行参数和故障报警查向参数。此外,还有30个键,提供丁505调速面板上的全部操作。汽轮机的控制操作不需要附加的控制屏,每个汽轮机控制功能都能通过505转速控制器的面板执行。 (二)505键盘上:各个键的功能 1)键盘中央的大菱形键,在其四个角上带有箭头。 ←→(左右翻动)使编程或运行方式下的功能块显示左移或右移。 ↑↓ (上下翻动)使编程或运行方式下的功能块显示上下移动。2)SELECT(选择键) 选择键用于505显示器上行或下行变量的选择控制。@符号用于指出哪一行(变量)能通过调整键ADJ来进行调整。只有当上、下行都为可调变量时,SELECT键和@符号才能起作用。当显示器只显示一个变量时,SELECT 键和@符号的位置将不起作用。 3)ADJ(调整键) 在运行方式中,“▲”增大可调参数,“▼”减少可调参数。 4)PRGM(编程键) 当505处于跳车状态或停机状态时,用该键选择编程方式。在运行方式中,该键用于选择程序临视方式。在程序临视方式中,能浏览所编制的程序但不能修改。 5)RUN(运行键) 从505画面显示(CONTROLLING PARAMETR/PUSH RUN OR PRGM)状态触发汽轮机运行即启动指令。 6)STOP(停止键) 一旦予以确认,触发汽轮机控制停机(运行方式)。能过通过服务方式设定值(在“键选择”下来取消“STOP”指令。

7)RESET(复位键) 对运行方式的报警和停机状态作复位/清除。在停机后按该键还可使调速器返回到(CONTROLLING PARAMETR/PUSH RUNORPRGM)状态。 8)O/NO: 输入O/NO或退出。 9)1/YES: 输入1/YES或投入。 10)2/ACTR(执行机构): 输入2(编程方式)或显示执行机构位置(运行方式),按“下翻箭头”显示输入执行机构的电流。 11)3/CONT(控制参数): 输入2(编程方式)或显示控制参数(运行方式),按“下翻箭头”显示505的最近—次跳车原因、达到的最高转速和就地/远程状态。 12)4/CAS(串级控制): 输入4或显示串级控制信息(运行方式),未使用。 13) 5/RMT<远程控制): 输入5或显示远程转速给定值控制信息(运行方式)。 14) 6/LMTR(阀位限制器): 输入6或显示阀位限制器信息。 15) 7/SPEED: 输入7或显示就地转速值(二选一,选最高值)和转速设定值。 16) 8/AUX(辅助): 输入8或显示辅助控制信息(运行方式)。 17) 9/KW(负荷): 输入9或显示KW/负荷或第一级压力信息(运行方式)。 18)CLEAR:

Excel中常用函数及其使用方法简介

目录 一、IF函数——————————————————————————————————2 二、ASC函数—————————————————————————————————4 三、SEARCH函数——————————————————————————————4 四、CONCATENATE函数———————————————————————————4 五、EXACT函数———————————————————————————————5 六、find函数—————————————————————————————————5 七、PROPER函数——————————————————————————————7 八、LEFT函数————————————————————————————————7 九、LOWER函数———————————————————————————————7 十、MID函数————————————————————————————————8 十一、REPT函数———————————————————————————————8 十二、Replace函数——————————————————————————————9 十三、Right函数———————————————————————————————10 十四、UPPER函数——————————————————————————————10 十五、SUBSTITUTE函数———————————————————————————10 十六、VALUE函数——————————————————————————————12 十七、WIDECHAR函数———————————————————————————12 十八、AND函数———————————————————————————————12 十九、NOT函数———————————————————————————————13 二十、OR函数————————————————————————————————13 二十一、COUNT函数—————————————————————————————14 二十二、MAX函数——————————————————————————————15 二十三、MIN函数——————————————————————————————15 二十四、SUMIF函数—————————————————————————————16 二十五、OFFSET函数————————————————————————————17 二十六、ROW函数——————————————————————————————20 二十七、INDEX 函数————————————————————————————21 二十八、LARGE函数—————————————————————————————22 二十九、ADDRESS函数————————————————————————————23 三十、Choose函数——————————————————————————————24 三十一、HLOOKUP函数———————————————————————————24 三十二、VLOOKUP函数———————————————————————————26 三十三、LOOKUP函数————————————————————————————29 三十四、MATCH函数————————————————————————————29 三十五、HYPERLINK函数——————————————————————————30 三十六、ROUND函数————————————————————————————31 三十七、TREND函数—————————————————————————————32

505调速器说明书

一、引言 505/505E是以微处理器为基础的调速器,适用于单执行机构或双执行机构的汽轮机控制。调速器采用菜单驱动软件以引导现场工程师根据具体的发电机或机械驱动应用要求对调速器进行编程组态。本说明书主要介绍调速器的工作原理、系统构成、面板操作。由于英文版手册存在不断增加和更改内容等方面的因素,使用woodward505/505E时,还请参考随调速器提供的woodward正式英文版手册。 二、505/505E的工作原理及系统介绍 505/505E电子调节器比一般液压系统控制精度高,自动化水平大大提高,热电负荷 自整性也高,它能实现升速(手动或自动),配合电气并网,负荷控制(阀位控制或功频 控制),抽汽热负荷控制及其它辅助控制,并与DCS通讯,控制参数在线调整和超速保护 功能等。能使汽轮机适应各种工况并长期安全运行。 2.1基本原理 并网前在升速过程中,转速闭环为无差控制,505/505E控制器将测量的机组实际和给定转速的偏差信号经软件分析处理及PID运算后输出标准电流信号给电液转换器,电液转换器接受调节器输出的标准电流信号,输出与输入电流信号相对应的调节信号油压。调节信号油压经液压伺服机构放大,控制油动机活塞移动,通过调节杠杆,改变调节汽阀的开度,调节汽轮机高压段、低压段的进汽量。从而减少转速偏差,达到转速无差控制,当转速达到3000r/min,机组可根据需要定速运行,此时505/505E可接受自动准同期装置发出的或运行人员手动操作指令,调整机组实现同步,以便并网。 机组并网后,如果采用功率闭环控制,可根据需要决定505/505E使机组立即带上初负荷,DEH实测机组功率和机组转速作为反馈信号,转速偏差作为一次调频信号对给定功率进行修正,功率给定与功率反馈比较后,经PID运算和功率放大后,通过电液转换器和油动机控制调节阀门开度来消除偏差信号,对机组功率实现无差调节,若功率不反馈,则以阀位控制方式运行,即通过增加转速设定,开大调节汽阀,增加进汽量达到增加负荷的目的。在甩负荷时,505/505E自动将负荷调节切换到转速调节方式。机组容量较小时建议可不采用功率闭环控制。 在机组带上一定电负荷后可根据需要带热负荷,投入抽汽控制。505/505E控制器根据机组工况图对机组电负荷及抽汽压力进行自整控制。

Excel常用函数及使用方法

excel常用函数及使用方法 一、数字处理 (一)取绝对值:=ABS(数字) (二)数字取整:=INT(数字) (三)数字四舍五入:=ROUND(数字,小数位数) 二、判断公式 (一)把公式返回的错误值显示为空: 1、公式:C2=IFERROR(A2/B2,"") 2、说明:如果是错误值则显示为空,否则正常显示。 (二)IF的多条件判断 1、公式:C2=IF(AND(A2<500,B2="未到期"),"补款","") 2、说明:两个条件同时成立用AND,任一个成立用OR函数。 三、统计公式 (一)统计两表重复 1、公式:B2=COUNTIF(Sheet15!A:A,A2) 2、说明:如果返回值大于0说明在另一个表中存在,0则不存在。 (二)统计年龄在30~40之间的员工个数 公式=FREQUENCY(D2:D8,{40,29} (三)统计不重复的总人数 1、公式:C2=SUMPRODUCT(1/COUNTIF(A2:A8,A2:A8)) 2、说明:用COUNTIF统计出每人的出现次数,用1除的方式把出现次数变成分母,然后相加。

(四)按多条件统计平均值 =AVERAGEIFS(D:D,B:B,"财务",C:C,"大专") (五)中国式排名公式 =SUMPRODUCT(($D$4:$D$9>=D4)*(1/COUNTIF(D$4:D$9,D$4:D$9))) 四、求和公式 (一)隔列求和 1、公式:H3=SUMIF($A$2:$G$2,H$2,A3:G3) 或=SUMPRODUCT((MOD(COLUMN(B3:G3),2)=0)*B3:G3) 2、说明:如果标题行没有规则用第2个公式 (二)单条件求和 1、公式:F2=SUMIF(A:A,E2,C:C) 2、说明:SUMIF函数的基本用法 (三)单条件模糊求和 说明:如果需要进行模糊求和,就需要掌握通配符的使用,其中星号是表示任意多个字符,如"*A*"就表示a前和后有任意多个字符,即包含A。 (四)多条求模糊求和 1、公式:=SUMIFS(C2:C7,A2:A7,A11&"*",B2:B7,B11) 2、说明:在sumifs中可以使用通配符* (五)多表相同位置求和 1、公式:=SUM(Sheet1:Sheet19!B2) 2、说明:在表中间删除或添加表后,公式结果会自动更新。

Zoom505-2效果Zoom505-2效果器使用说明书

Zoom505-2效果Zoom505-2效果器使用说明书 Zoom505-2效果Zoom505-2效果器使用说明书 一、原厂的24种音色 尽管鲜有人使用,但还是有必要说明一下,这是你进行各类音色设置的 最直接参照,在此基础上修改会事半功倍。 A组:1-适合于SOLO的失真? 2-带延迟效果的原音? 3-适合于节奏的失真? 4-极度失真的重金属? B组:1-适合SOLO的浅失真 2-带哇音的过载失真? 3-带飘忽效果的原音? 4-带和声效果的原音 C组:1-适合节奏的浅失真 2-带和唱效果的原音 3-重金属效果的失真 4-略带飘忽的电原音 D组:1-另外一种过载失真 2-带飘忽效果的FUNK 3-闪烁回音的浅失真 4-木吉他的仿真效果 E组:F组: (因进行了复杂设置,原厂音色记不清了,懒的再恢复,呵呵,大伙多原谅。) 二、演奏中变换音色的方法: 1、基本的:连接好以后,接通电源(或装电池,接上吉他即开。505没有电源开关。)根据需要踩(踩一下即可)踏板1或踏板2,你将看到组、号的逐次变换,这时,就出现了相应的音色。 非演奏中,比如分段录音时,还可以使用图1中的“组的更换键”,这样, 每次按一下,将变换一个组,而组号不变。 2、锁定音色 A、锁定一组:进入该组,按住“编辑键”,1秒钟后进入锁定组的状态, 再次按住,1秒钟后自动解锁。 B、缩定单一音色:同上,所不同的是按住“存储键”。 三、直通和调弦功能 将踏板1和踏板2同时踩下后,进入直通状态,此状态中可以调弦。 弹响一个音后,505将自动显示该音的首调唱名,同时,有一个闪烁 的小灯,这是该音的标准位置指示灯,其他闪动的灯与此平齐时,显 示的唱名和你的弹奏音音高一致。 我个人通常使用12品泛音+7品音调弦。 结束直通:随意踩下踏板1或踏板2(无须同时踩下)。 四、外接踏板的使用(图2-3的插孔说明) 这是一个很容易被忽视的地方,大伙普遍都认为505不值得外接踏板, 其实,它在这方面的性能还是很不凡的。因我的条件有限,只借了个踏板 简单的玩了一次,可能说的有错漏。

Excel常用函数的使用方法

1、ABS函数 函数名称:ABS 主要功能:求出相应数字的绝对值。 使用格式:ABS(number) 参数说明:number代表需要求绝对值的数值或引用的单元格。 应用举例:如果在B2单元格中输入公式:=ABS(A2),则在A2单元格中无论输入正数(如100)还是负数(如-100),B2中均显示出正数(如100)。 特别提醒:如果number参数不是数值,而是一些字符(如A等),则B2中返回错误值“#VALUE!”。 2、AND函数 函数名称:AND 主要功能:返回逻辑值:如果所有参数值均为逻辑“真(TRUE)”,则返回逻辑“真(TRUE)”,反之返回逻辑“假(FALSE)”。 使用格式:AND(logical1,logical2, ...) 参数说明:Logical1,Logical2,Logical3……:表示待测试的条件值或表达式,最多这30个。 应用举例:在C5单元格输入公式:=AND(A5>=60,B5>=60),确认。如果C5中返回TRUE,说明A5和B5中的数值均大于等于60,如果返回FALSE,说明A5和B5中的数值至少有一个小于60。 特别提醒:如果指定的逻辑条件参数中包含非逻辑值时,则函数返回错误值“#VALUE!”或“#NAME”。 3、AVERAGE函数 函数名称:AVERAGE 主要功能:求出所有参数的算术平均值。 使用格式:AVERAGE(number1,number2,……) 参数说明:number1,number2,……:需要求平均值的数值或引用单元格(区域),参数不超过30个。

应用举例:在B8单元格中输入公式:=AVERAGE(B7:D7,F7:H7,7,8),确认后,即可求出B7至D7区域、F7至H7区域中的数值和7、8的平均值。 特别提醒:如果引用区域中包含“0”值单元格,则计算在内;如果引用区域中包含空白或字符单元格,则不计算在内。 4、COLUMN 函数 函数名称:COLUMN 主要功能:显示所引用单元格的列标号值。 使用格式:COLUMN(reference) 参数说明:reference为引用的单元格。 应用举例:在C11单元格中输入公式:=COLUMN(B11),确认后显示为2(即B列)。 特别提醒:如果在B11单元格中输入公式:=COLUMN(),也显示出2;与之相对应的还有一个返回行标号值的函数——ROW(reference)。 5、CONCATENATE函数 函数名称:CONCATENATE 主要功能:将多个字符文本或单元格中的数据连接在一起,显示在一个单元格中。 使用格式:CONCATENATE(Text1,Text……) 参数说明:Text1、Text2……为需要连接的字符文本或引用的单元格。 应用举例:在C14单元格中输入公式:=CONCATENATE(A14,"@",B14,".com"),确认后,即可将A14单元格中字符、@、B14单元格中的字符和.com连接成一个整体,显示在C14单元格中。 特别提醒:如果参数不是引用的单元格,且为文本格式的,请给参数加上英文状态下的双引号,如果将上述公式改为:=A14&"@"&B14&".com",也能达到相同的目的。 6、COUNTIF函数 函数名称:COUNTIF 主要功能:统计某个单元格区域中符合指定条件的单元格数目。 使用格式:COUNTIF(Range,Criteria) 参数说明:Range代表要统计的单元格区域;Criteria表示指定的条件表达式。

摇表、万用表、钳形表的使用方法

摇表(兆欧表),万用表,钳形表的使用方法 电工常用测量仪表有摇表、万用表和钳形电流表,这些仪表在测量时若不注意正确的使用方法或稍有疏忽,不是将表烧坏,就是使被测元件损坏,甚至还危及人身安全,因此,掌握摇表(兆欧表),万用表,钳形表的使用方法。 电工常用测量仪表有摇表、万用表和钳形电流表,这些仪表在测量时若不注意正确的使用方法或稍有疏忽,不是将表烧坏,就是使被测元件损坏,甚至还危及人身安全,因此,掌握常用电工测量仪表的正确使用方法是非常重要的。 1 摇表 摇表又称兆欧表,其用途是测试线路或电气设备的绝缘状况。使用方法及注意事项如下: (1) 首先选用与被测元件电压等级相适应的摇表,对于500V及以下的线路或电气设备,应使用500V或1000V 的摇表。对于500V以上的线路或电气设备,应使用1000V或2500V 的摇表。 (2) 用摇表测试高压设备的绝缘时,应由两人进行。 (3) 测量前必须将被测线路或电气设备的电源全部断开,即不允许带电测绝缘电阻。并且要查明线路或电气设备上无人工作后方可进行。 (4) 摇表使用的表线必须是绝缘线,且不宜采用双股绞合绝缘线,其表线的端部应有绝缘护套;摇表的线路端子“L”应接设备的被测相,接地端子“E”应接设备外壳及设备的非被测相,屏蔽端子“G”应接到保护环或电缆绝缘护层上,以减小绝缘表面泄漏电流对测量造成的误差。 (5) 测量前应对摇表进行开路校检。摇表“L”端与“E”端空载时摇动摇表,其指针应指向“∞”;摇表“L”端与“E”端短接时,摇动摇表其指针应指向“0”。说明摇表功能良好,可以使用。 (6) 测试前必须将被试线路或电气设备接地放电。测试线路时,必须取得对方允许后方可进行。

ZOOM505Ⅱ效果器中文说明

面板各部位名称(图1) ---------------------- | | A1 | | 存储键●| | 音色| |●+参数值(编辑时)/组的更换↑ | | | | | | | | 编辑键●|------| 灯|------|●-参数值(编辑时)/组的更换↓ | *|* | | 踏板1 | 踏板2 | ---------------------- 后侧各插孔意义(图2) --------------------------- | 1 2 3 4 | | ◎◎ ZOOM ◎◎| --------------------------- 1、→电吉他 2、→9V变压器电源 3、→外接踏板 4、输出插口→音箱或耳机 三、原厂的24种音色 尽管鲜有人使用,但还是有必要说明一下,这是你进行各类音色设置的最直接参照,在此基础上修改会事半功倍。

A组 1-适合于SOLO的失真2-带延迟效果的原音 3-适合于节奏的失真 4-极度失真的重金属 B组 1-适合SOLO的浅失真2-带哇音的过载失真 3-带飘忽效果的原音 4-带和声效果的原音 C组 1-适合节奏的浅失真 2-带和唱效果的原音 3-重金属效果的失真 4-略带飘忽的电原音 D组 1-另外一种过载失真 2-带镶边效果的FUNK 3-闪烁回音的浅失真

4-木吉他的仿真效果 E组、F组 进行了设置,原厂音色记不清了. 四、演奏中变换音色的方法 1、基本的 连接好以后,接通电源(或装电池,接上吉他即开。505没有电源开关。)根据需要踩(踩一下即可)踏板1或踏板2,你将看到组、号的逐次变换,这时,就出现了相应的音色。 非演奏中,比如分段录音时,还可以使用图1中的“组的更换键”,这样,每次按一下,将变换一个组,而组号不变。 2、锁定音色 A、锁定一组:进入该组,按住“编辑键”不放,2秒钟后进入锁定组的状态,再次按住不放,2秒钟后自动解锁。 B、锁定单一音色:同上,所不同的是按住“存储键”。 五、直通和调弦功能 将踏板1和踏板2同时踩下后,进入直通状态,此状态中可以调弦。弹响一个音后,505将自动显示该音的首调唱名,同时,有一个闪烁的小灯,这是该音的标准位置指示灯,其他闪动的灯与此平齐时,显示的唱名和你的弹奏音音高一致。

EXCEL中常用函数及使用方法

EXCEL中常用函数及使用方法 Excel函数一共有11类:数据库函数、日期与时间函数、工程函数、财务函数、信息函数、逻辑函数、查询和引用函数、数学和三角函数、统计函数、文本函数以及用户自定义函数。 1.数据库函数 当需要分析数据清单中的数值是否符合特定条件时,可以使用数据库工作表函数。例如,在一个包含销售信息的数据清单中,可以计算出所有销售数值大于1,000 且小于2,500 的行或记录的总数。Microsoft Excel 共有12 个工作表函数用于对存储在数据清单或数据库中的数据进行分析,这些函数的统一名称为Dfunctions,也称为D 函数,每个函数均有三个相同的参数:database、field 和criteria。这些参数指向数据库函数所使用的工作表区域。其中参数database 为工作表上包含数据清单的区域。参数field 为需要汇总的列的标志。参数criteria 为工作表上包含指定条件的区域。 2.日期与时间函数 通过日期与时间函数,可以在公式中分析和处理日期值和时间值。 3.工程函数 工程工作表函数用于工程分析。这类函数中的大多数可分为三种类型:对复数进行处理的函数、在不同的数字系统(如十进制系统、十六进制系统、八进制系统和二进制系统)间进行数值转换的函数、在不同的度量系统中进行数值转换的函数。 4.财务函数 财务函数可以进行一般的财务计算,如确定贷款的支付额、投资的未来值或净现值,以及债券或息票的价值。财务函数中常见的参数: 未来值(fv)--在所有付款发生后的投资或贷款的价值。 期间数(nper)--投资的总支付期间数。 付款(pmt)--对于一项投资或贷款的定期支付数额。 现值(pv)--在投资期初的投资或贷款的价值。例如,贷款的现值为所借入的本金数额。 利率(rate)--投资或贷款的利率或贴现率。 类型(type)--付款期间内进行支付的间隔,如在月初或月末。 5.信息函数 可以使用信息工作表函数确定存储在单元格中的数据的类型。信息函数包含一组称为IS 的工作表函数,在单元格满足条件时返回TRUE。例如,如果单元格包含一个偶数值,ISEVEN 工作表函数返回TRUE。如果需要确定某个单元格区域中是否存在空白单元格,可以使用COUNTBLANK 工作表函数对单元格区域中的空白单元格进行计数,或者使用ISBLANK 工作表函数确定区域中的某个单元格是否为空。 6.逻辑函数 使用逻辑函数可以进行真假值判断,或者进行复合检验。例如,可以使用IF 函数确定条件为真还是假,并由此返回不同的数值。

社科中文工具书教案

社科中文工具书教案 第一章工具书概述 第一节工具书的含义、特点、类型和功用 1、工具书的含义 指根据一定的社会需要,以特定的编排形式和检索方法,广泛汇集某一方面的知识或资料,专供人们迅速查阅的特定类型的图书。例如,新华字典、康熙字典、现代汉语词典、辞海、辞源等。 2、工具书的特点由定义可知: 1)易检性 2)总括性 3)查考性 3、工具书的类型 1)中文工具书和外文工具书(文种) 2)社会科学工具书和科技工具书(学科内容) 3)古代工具书和现代工具书(编纂时代) 4)字典、词典、百科全书、类书、政书、丛书、年鉴、手册、目录、索引、文摘、表谱、图录等(从功用特点) 4、工具书的功用 主要体现在学习和工作中,具体功用体现在下面几个方面: 1)解释疑难问题(最基本) 2)指引读书的门径(目录) 3)提供资料线索和学术信息(研究问题,索引) 4)提供各种学科的基本知识(百科全书) 5、工具书的局限 也有查检不到的地方,内容也并不是都正确等(由于时代和个人水平)。所以,使用过程中就要有分析和鉴别。 参考书目:《社科中文工具书使用》邓宗荣《辞书概要》陈炳迢 《中国字典史略》刘叶秋《史籍举要》柴德赓

第二节工具书排检法和四角号码法 1、工具书排检法 排检法是工具书编排与检索方法的简称。编排与检索的关系 排检法的分类(看图示): 排检法大致有这么几种:字序法、分类法、主题法、时序法、地序法等。 字序法:最常见,所以重点介绍它。它分形序法、音序法、号码法。 形序法:部首法、笔画法、起笔笔画法 音序法:汉语拼音字母法、注音字母法、 韵目法(又分韵母法、声母顺序法) 号码法:四角号码法、中国字庋撷法 方法虽然多但是最常用的有部首法、音序法、号码法、笔画法。下面介绍一下四角号码法。 2、四角号码法 主要介绍以下内容: 1)概述 2)使用方法 3)歌诀 此查字法把汉字笔形分为十种,分别用0到9十个号码代表: 四角号码法使用歌诀:横一垂二三点捺,叉四插五方框六, 七角八八九是小,点下有横变零头。

505控制器使用方法

505 控制器使用方法 一、505 控制器常用键功能: PRGM ——编程RUN ——运行RESET——复位 STOP――停止(需要按YES或NO键确认) F1――报警F2――超速实验[F2+ADJ (上升)] SELECT——选择SPEED——速度 AUX——功率限制KW——功率(负荷)显示 CLEAR ――清除ENTER――回车(确认) EMERGENCY SHUTDOWN ――紧急停机 二、PRGM ――编程键一般情况下用户不能动,一般由厂家和DCS 设计单位联合来完成编程,编程时设计有密码。 三、通常模式下启动(505 面板操作) 通电一一505控制器自检(约1分钟)——自动跳到CONTROLLING PARAMETER——如果有报警(F1键红灯亮),按F1 键观察报警条目。报警包括(MPU FAILED 转速传感器故障、CASCADE INPUT FAILED 阀前压力传感器故障、KW INPUT FAILED 功率传感器故障、OVER SPEED超速等) 自动启动: 1. 启动前应按RESET 键复位报警,F1 红色灯熄灭,方可 启动。启动前保证主汽阀处于全关状态 2. 按RUN 键运行,505 转速设定值按照编制的程序上升到500rpm ,此时调节阀门逐渐全部打开。

3. 逐渐打开主汽阀冲转,当转速达到500rpm 设定值时,调节阀门回缩到某一稳定位置,505 接替控制,按预先编制的低暖机时间进行暖机。 4. 暖机时间达到时,505 自动控制转速上升到1200rpm,按预先编制的高速暖机时间进行暖机。 5. 暖机时间达到后,505 将自动控制转速越过临界转速而逐渐达到3000rpm 后稳定运行。 手动启动: 1. 启动前应按RESET 键复位报警,F1 红色灯熄灭,方可启动。启动前保证主汽阀处于全关状态。 2. 按RUN 键运行,505 转速设定值按照编制的程序上升 到500rpm ,此时调节阀门逐渐全部打开。 3. 目标转速设定:通过按SPEED 键找到SETPT 后,按ENTER 后,直接输入转速设定值,再按ENTER 确认,此时逐渐打开主汽阀,转速就会按照设定值进行升速。(此后每次转速目标值都如此进行设定) 4. 暖机时间设定:若需要延长暖机时间,可通过按SPEED 键找到STATUS后,按NO键终止自动顺序,从而人为延长暖机时间。当按SPEED 键找到STATUS 后,按YES 键又可以恢复到自动顺序控制状态,505 将按照编制好的程序继续自动控制。如果希望减短暖机时间,可通过SPEED键找到SETPT后,按方向键立刻提升或降

WPS表格常用函数应用教程(经典版)

WPS表格常用函数应用教程 一、函数应用基础 (一)函数和公式 1.什么是函数 WPS表格函数即是预先定义,执行计算、分析等处理数据任务的特殊公式。以常用的求和函数SUM为例,它的语法是“SUM(数值1, 数值2,......)”。其中“SUM”称为函数名称,一个函数只有唯一的一个名称,它决定了函数的功能和用途。函数名称后紧跟左括号,接着是用逗号分隔的称为参数的内容,最后用一个右括号表示函数结束。参数是函数中最复杂的组成部分,它规定了函数的运算对象、顺序或结构等。使得用户可以对某个单元格或区域进行处理,如确定成绩名次、计算三角函数值等。 2.什么是公式 函数与公式既有区别又互相联系。如果说前者是WPS 表格预先定义好的特殊公式,后者就是由用户自行设计对工作表进行计算和处理的公式。以公式“=SUM(E1:H1)*A1+26”为例,它要以等号“=”开始,其内部可以包括函数、引用、运算符和常量。上式中的“SUM(E1:H1)”是函数,“A1”则是对单元格A1 的引用(使用其中存储的数据),“26”则是常量,“*”和

“+”则是算术运算符(另外还有比较运算符、文本运算符和引用运算符)。如果函数要以公式的形式出现,它必须有两个组成部分,一个是函数名称前面的等号,另一个则是函数本身。 (二)函数的参数 函数右边括号中的部分称为参数,假如一个函数可以使用多个参数,那么参数与参数之间使用半角逗号进行分隔。参数可以是常量(数字和文本)、逻辑值(例如真值或假值)、数组、错误值(例如#N/A)或单元格引用(例如E1:H1),甚至可以是另一个或几个函数等。参数的类型和位置必须满足函数语法的要求,否则将返回错误信息。 1.常量 常量是直接输入到单元格或公式中的数字或文本,或由名称所代表的数字或文本值,例如数字“2890.56”、日期“2003-8-19”和文本“黎明”都是常量。但是公式或由公式计算出的结果都不是常量,因为只要公式的参数发生了变化,它自身或计算出来的结果就会发生变化。 2.逻辑值 逻辑值是比较特殊的一类参数,它只有真或假两种类型。例如在公式“=IF(A3=0,"",A2/A3)”中,“A3=0”就是一个可以返回真或假两种结果的参数。当“A3=0”为真时在公式所在单元格中填入“0”,否则在单元格中填入“A2/A3”的计算结果。

相关主题