Основные понятия SIMIT

1.1 Принцип работы


SIMIT может использоваться для следующих функций:
полное моделирование производства
Моделирование сигналов, устройств и поведения процессов производства
симулятор ввода и вывода тестовых сигналов для контроллера автоматизации
тестирование и ввод в эксплуатацию программного обеспечения для автоматизации
Даже если для тестирования сигнала изначально используется только пользовательский интерфейс, например, имитационные модели, впоследствии вы можете добавить другие источники сигнала для моделирования реакции производства и выполнения
динамических испытаний.Абзац


По сути, вы работаете со следующими элементами для создания симуляции:
диаграмма (Chart)
Чтобы разработать симуляцию, вы объединяете компоненты, доступные в библиотеках, используя
Редактор диаграмм и введите соответствующие пароли.
Дополнительную информацию вы можете найти в разделе: Создание и редактирование диаграмм (Creating and editing charts) (Страница 217).
визуализация (Visualization)
Визуализация дает вам обзор сигналов вашего производства. Сигнал визуализируется с помощью
элементов управления (объекты ввода и отображения) и графических объектов.
Вы можете найти дополнительную информацию в разделе: Визуализация моделирования (Visualizing a simulation) (Страница 29).
Соединения (Coupling)
Соединение является интерфейсом к системе автоматизации и требуется для обмена сигналами.
Вы можете индивидуально указать область сигнала, который будет обрабатываться SIMIT.
Вы можете найти больше информации о соединениях в:
Соединения (Coupling) (Страница 57).

Работа с базой данных SQLite в Python 2

Для работы с SQLite в Python 2 должен быть установлен пакет sqlite и python 2.5+.

# под Arch Linux sudo pacman -S sqlite
# под Ubuntu sudo apt-get install sqlite

Проверка sqlite

$ sqlite3 test.db 
sqlite> .tables
sqlite> .exit
$ python
>>> import sqlite3
>>> sqlite3.version

Создаем базу данных, вставляем данные и делаем выборку.

# -*- coding: utf_8 -*-
import sqlite3
con = sqlite3.connect('users.db') # Создаем соединение с базой данных. Если БД не существует то она будет создана, иначе файл будет открыт.
cur = con.cursor() # Создание объекта курсора для взаимодействия с БД.
cur.execute('CREATE TABLE names (id INTEGER PRIMARY KEY, firstName VARCHAR(100), secondName VARCHAR(40))') #Создание таблицы
names
con.commit()
cur.execute('INSERT INTO names (id, firstName, secondName) VALUES(NULL, "Vasya", "Pupkin")') #Вставка кортежа со значениями
con.commit()
print cur.lastrowid
cur.execute('SELECT * FROM names ')
print cur.fetchall()
con.close()

Вставляем кортеж со значениями из переменных

firstName ='Vasya'
secondName='Pupkin'
cur.execute('INSERT INTO users VALUES (null, ?, ?)', (firstName, secondName))
con.commit()
ВАЖНО: При вставке одного значения в один столбец нужно так-же соблюдать синтаксис формата кортежа. Например такой код не будет работать:
firstName ='Vasya'
cur.execute('INSERT INTO names (firstName) VALUES (?)', (firstName))
Ты получишь ошибку:
sqlite3.ProgrammingError: Incorrect number of bindings supplied. The current statement uses 1, and there are 5 supplied.

После значения необходимо ставить запятую, тогда интерпретатор воспримет его как кортеж:
cur.execute('INSERT INTO names (firstName) VALUES (?)', (firstName,))

Получаем выборку данных из нескольких строк:

firstName ='Vasya'
secondName='Pupkin'
cur.execute('INSERT INTO names VALUES (null, ?, ?)', (firstName, secondName))
con.commit()
cur.execute('SELECT * FROM names')
print cur.fetchall()
cur.execute('SELECT * FROM names')
for row in cur:
print '-'*10
print 'ID:', row[0]
print 'First name:', row[1]
print 'Second name:', row[2]
print '-'*10
con.close()

Вывод:
[(1, u'Vasya', u'Pupkin')]
----------
ID: 1
First name: Vasya
Second name: Pupkin
----------
Process finished with exit code 0

Получаем выборку данных одной строки:

with con:
cur = con.cursor()
cur.execute('SELECT * FROM names')
data = cur.fetchone()
print data[1]
con.close()

Вывод:
Vasya

Можно выбрать определенное количество строк, передав значение в курсор:

cur.execute('SELECT * FROM names') 
print cur.fetchmany(2)

Вывод:
[(1, u'Vasya', u'Pupkin'), (2, u'Vasya', u'Pupkin')]