2023/01/28
Howto:
Go to the official Python homepage and Download latest version for your operating system:
Run the installer, install for all users into C:\Program Files\Python311 (default)
On the next screen: Require Administrative Privileges
On the next screen: Install for all users
Installing now (after Security Alert):
Agree with disabling path length limit:
Now run Windows Powershell as administrator
Make sure that Python is in your Path:
If Python is not in your path, search "env" in settings, go to environment variables and add two rows to system path:
Press OK, and add 2 new items
Now install Microsoft Visual Studio Code:
Agree with the license and default installation options and press Next (you may prefer to have a Desktop Icon for the VSCode):
Add Microsoft "Python plugin"
We would also need following plugins for our future lessons (everything else was added automatically as dependencies, so do not remove them)
Now check the installation:
Open this file with VSCode:
You should have this:
To use freshly installed stuff for your further development make sure "autocomplete" is up and running:
All Done.
В беспамятстве любые логические выражения можно записать с помощью операций с одним или двумя аргументами, и построить на их основе эквивалентные лестничные схемы, где на шпале всегда только один или два контакта.
Для устройств с памятью, вероятно потребуется одна тринарная операция. На эту мысль наводит то, что практически все императивные языки программирования имеют в своем составе такую конструкцию:
# logical expression a is true then y = xa otherwise y = b
#
# Pythonic style
y = xa if a else xb
# C style
y = a ? xa : xb
10 заповедей (10 commandments)
Вся схема представляет из себя лестницу из двух рельсов (левая "горячая", под постоянным напряжением, правая заземлена, 0) и неограниченного количества шпал между ними, на которых расположены три вида элементов:
--( )--
)--] [--
)--]/[--
)На каждой шпале обязательно есть одна и только одна обмотка реле, одним полюсом соединенная с холодной рельсой.
Можно потребовать, чтобы на шпале было не более 3х контактов.
Обмотка реле связана с группой контактов через имя. Часто принятые обозначения: Qn -- выходная обмотка, где n натуральное число. Qn.m -- контакт номер m, управляемый обмоткой n.
Все контакты объединены в контактные группы (одна группа управляется одним источником (пальцем или обмоткой реле)
Контакты управляемые внешним воздействием обычно обозначаются буквой i (i3.5 пятый контакт в третьей группе)
Реле у которых ни один контакт не связан с выходом, называются флажками и обозначаются буквой M.
Протягивать провода со шпалы на шпалу запрещается
ПЛК (программируемый логический контроллер), читает лестничную диаграмму слева направо, сверху вниз (как "свиток", где шпалы это строки, лестница -- свиток). После того, как схема прочитана, контроллер возвращается к началу диаграммы. Время, требуемое для прочтения лестницы должно быть меньше либо равно времени одного такта "главного цикла микроконтроллера".
Перед входом в главный цикл контроллер занимается настройкой элементов схемы (setup, begin). Выход из главного цикла приводит к выполнению фазы завершения (end), и означает аварийную ситуацию ("смерть" процесса управления)
ПРИМЕР 1: Моментальная кнопка и кнопка с фиксацией
from tkgpio import TkCircuit
# JSON island:
configuration = {
"width": 230,
"height": 200,
"leds": [
{"x": 50, "y": 40, "name": "MOMENTARY", "pin": 21},
{"x": 150, "y": 40, "name": "FIXED", "pin": 22},
],
"buttons": [
{"x": 50, "y": 130, "name": "momentary", "pin": 10},
{"x": 150, "y": 130, "name": "fixed", "pin": 11},
]
}
# Python island
circuit = TkCircuit(configuration)
@circuit.run
def main ():
from gpiozero import LED, Button
from time import sleep
ledM = LED(21); ledF = LED(22);
buttonM = Button(10); buttonF = Button(11);
buttonM.when_pressed = buttonM.when_released = \
lambda : ledM.on() if buttonM.value else ledM.off()
buttonF.when_pressed = lambda : ledF.toggle()
while True:
sleep(0.1)