Работа с ПЛК (PLC) вопросы

Всё о ЧПУ (CNC). Компоненты, станки, программы.
SAIHO
Реальное имя: Сергей
Откуда: Ейск

Работа с ПЛК (PLC) вопросы

Сообщение SAIHO » 10 дек 2019, 15:22

AnSm писал(а):Источник цитаты Для работы с Овен плк, Денису это не нужно совершенно.

Возможно. Просто я сужу по себе. Когда представляешь суть протокола, то понятно откуда берутся переменные, почему их длина такая, откуда растет кратность адресов и т.д. Мне гораздо проще понять логику, а не заучивать правила наизусть. Но есть и другой подход, к нему я тоже отношусь с уважением.
Демократия не должна нарушать границы компетентности.

Аватара пользователя
AnSm

Работа с ПЛК (PLC) вопросы

Сообщение AnSm » 10 дек 2019, 15:23

Посмотрел сейчас на сайте овен про твою панель. В принципе вообще там должно быть все хорошо. Скриптоподобный язык. Интерфейс какой хочешь заточишь. Ну и как всегда там везде очень хорошая справка. Сам все хочу подоную панельку взять для поиграться. Может куданить приверчу. Тут у нас старую точку (сварку) решили восстановить. Наверное туда ее и прикручу.

Отправлено спустя 2 минуты 39 секунд:
SAIHO писал(а):Источник цитаты Мне гораздо проще понять логику

Мне это понадобилось когда пришлось писать сетку модбас рту на сом порт, а потом на тсп. Вот тут да. каждый байт разбираешь. А устройство протокола сейчас Денису излишне. Ему нужно получить как можно быстрее рабочий продукт, а не разбираться в хитростях протокола. Прл адресацию тоже можно ничего не знать, просто немного считать в линеечку как расположены регистры. ну и добавлять лишние, если в кратность не попадает. Собственно и все. Овен и коде сис очень дружелюбен к прикладным разработчикам. И так же оставляет много простора для системщиков

Аватара пользователя
Автор темы
Денис#
Реальное имя: Денис
Откуда: Рожденный в СССР

Работа с ПЛК (PLC) вопросы

Сообщение Денис# » 10 дек 2019, 21:48

AnSm писал(а):Источник цитаты думаю не сильно он отличается от плк110-60


Более чем уверен в том же. Хотя ПЛК110-60 тоже имеется :)
Я очень рад что Вы есть, теперь ушел читать/вникать.
Заниматься стОит только тем, что считается невозможным.

Аватара пользователя
Автор темы
Денис#
Реальное имя: Денис
Откуда: Рожденный в СССР

Работа с ПЛК (PLC) вопросы

Сообщение Денис# » 06 янв 2020, 02:10

Боюсь/стесняюсь продолжать тему, ибо нормальный человек уже бы наверно разобрался, но у меня все урывками и в свободное время...
В общем с панелью в первом приближении разобрался. Скачал конфигуратор, что то нам накидал, зашил в панель, потыкал - работает, рад.
В том числе нашел кнопку ввода данных и выпрыгивающую сенсорную клавиатурку. В общем теоретически в ячейку данные положил.
Понимая куда положил чисто теоретически понимаю откуда взять и наверно окунувшись ещё в один мануал разберусь как её оттуда достать. Но. Мне то нужно данные преобразовать. Т.е. на входе, в ячейке у меня данные в мм, а мне их нужно преобразовать в импульсы для контроллера ШД. По сути операция простейшая, вытащить данные из ячейки (пользовательские), вытащить множитель из регистра (константа) или даже просто помножить на константу (если не увлекаться делением шага, что в принципе нафиг не надо на данном этапе) и выдать результат на ногу. Это если я все правильно понимаю.
Вот тут дошло до программирования и я что то хрен знает с какой стороны подступиться. Хоть к ST, хоть FBD хоть к CFC...
Может есть какие то примеры у добрых людей для полной обезьяны с тремя классами церковно-приходской?
Ну и ещё вопрос: как задавать скорость движку? Т.е. как задавать частоту с которой на драйвер будут подаваться импульсы? Это зависит от частоты самой ПЛК? А если мне нужно медленнее то как-то вводить множитель? Как это реализовывается программно?
Что смотреть/читать, куда бежать?
Заранее всем благодарен! :hi:

Отправлено спустя 58 минут 38 секунд:
Хм... дальше поток сознания..
Получается что переменная в ячейке на морде у нас есть.
Контроллером мы забираем её оттуда по модбасу.
Далее присваиваем в контроллере переменной на входе адрес IN1, а выходной ноге адрес O1.
На ST пишем что то вроде

О1:=IN1*200; // с синтаксисом поправьте кто знает или киньте какой-нибудь инструкцией пожалуйста.

Теоретически должно получиться то что требуется при условии что имеем 200 импульсов на оборот, а оборот равен миллиметру.
Или я не прав?
Но в любом случае остается вопрос с частотой/скоростью...
Заниматься стОит только тем, что считается невозможным.

Аватара пользователя
AnSm

Работа с ПЛК (PLC) вопросы

Сообщение AnSm » 06 янв 2020, 05:59

Денис#, Денис, в библиотеке должны быть готовые преобразователи типа число->частота. Сейчас к сожалению не могу помочь, так как сам не занимался таким. 9го выйду на работу, посмотрю. Это нужно смотреть библиотеки в кодесис. Я делал только управление частотниками, там попроще. Преобразование например процентов в скорость в код цап частотника и передача по кода по модбасу.
В библиотеках должны быть генераторы. Нужно просто поискать. Или написать самому. Частота генератора будет определятся твоей переменной. Строб собрать по И, выход генератора и какая у тебя там переменная по разрешению тактирования. Грубо так как то.

Отправлено спустя 4 минуты 3 секунды:
Денис# писал(а):Источник цитаты О1:=IN1*200;

Так не правильно.
O1 дискретный выход. Он понимает true или false. Теоретически твою строку компилятор может и прожует( скорее нет, выдаст ошибку :несовпадение типов), но результат будет такой: Пока произведение больше нуля, на ножке будет высокий уровень. Если будет ноль, ножка переключится в низкий уровень.
От произведения должна менятся частота тактирующего генератора, а вот выход генератора имеет логический тип и его нужно подавать на ножку.

Отправлено спустя 4 минуты 50 секунд:
Если длительность импульса должна быть постоянная (для контроллера шд) то после генератора нужно включить одновибратор, который выдает импульс определенной длительности за один входной импульс. Это тоже должно быть в библиотеках(бибках)

Отправлено спустя 2 минуты 59 секунд:
Можно и по другому решить. Генератор пилы, компаратор и входная величина. Генератор пилы должен сбрасываться каждый раз при срабатывании компаратора, на выходе импульсы с переменной частотой.

Аватара пользователя
Автор темы
Денис#
Реальное имя: Денис
Откуда: Рожденный в СССР

Работа с ПЛК (PLC) вопросы

Сообщение Денис# » 06 янв 2020, 15:26

AnSm писал(а):Источник цитаты Так не правильно.
O1 дискретный выход. Он понимает true или false. Теоретически твою строку компилятор может и прожует( скорее нет, выдаст ошибку :несовпадение типов), но результат будет такой: Пока произведение больше нуля, на ножке будет высокий уровень. Если будет ноль, ножка переключится в низкий уровень.
От произведения должна менятся частота тактирующего генератора, а вот выход генератора имеет логический тип и его нужно подавать на ножку.

Отправлено спустя 4 минуты 50 секунд:
Если длительность импульса должна быть постоянная (для контроллера шд) то после генератора нужно включить одновибратор, который выдает импульс определенной длительности за один входной импульс. Это тоже должно быть в библиотеках(бибках)


Блин.. А ведь под утро начало казаться что почти победил...
Заниматься стОит только тем, что считается невозможным.

Аватара пользователя
AnSm

Работа с ПЛК (PLC) вопросы

Сообщение AnSm » 07 янв 2020, 09:08

Денис# писал(а):Источник цитаты Контроллером мы забираем её оттуда по модбасу.

Эмми. По своей практике я убедился, что контроллер лучше ставить слейвом. Мастером панель. Тогда именно панель шлёт переменную в контроллер. И когда ты конфигурируешь модбас, ты присваиваешь переменной любое имя. Она становится глобальной , назначать ее на какой то вход не нужно. Читать ее и изменять можешь в контроллере в любом месте. Но если переменную ты хочешь менять и в контроллере и с панели, то нужно написать код, который определяет откуда было изменение и соответственно если переменная была изменена с панели, то новое значение читает контроллер. Если переменная изменена в контроллере, то нужно уведомить панель, что переменная изменена и соответственно изменить значение переменной в панели. Я обычно делаю для этого промежуточную глобальную переменную. Куда и передается значение сетевой переменной. Особенно это актуально если нужно сохранить значения при выключении питания. Глобальная переменная объявляется retain. И при старте контроллера, панель считывает эти значения.

Аватара пользователя
Автор темы
Денис#
Реальное имя: Денис
Откуда: Рожденный в СССР

Работа с ПЛК (PLC) вопросы

Сообщение Денис# » 07 янв 2020, 13:06

AnSm писал(а):Источник цитаты По своей практике я убедился, что контроллер лучше ставить слейвом. Мастером панель.


Вот за это отдельное спасибо! Это был следующий вопрос по сути. Почему то забыл его произнести.
Заниматься стОит только тем, что считается невозможным.

Аватара пользователя
AnSm

Работа с ПЛК (PLC) вопросы

Сообщение AnSm » 07 янв 2020, 14:51

Денис#, Денис, суть в том, что твоя конфигурация может измениться и ты в сеть повесишь не один контроллер. И панель получит как мастер доступ ко всем контроллерам.

Аватара пользователя
Автор темы
Денис#
Реальное имя: Денис
Откуда: Рожденный в СССР

Работа с ПЛК (PLC) вопросы

Сообщение Денис# » 07 янв 2020, 18:52

Андрей, да простит меня вселенная за лень, но я очень жду 9-го числа :)

Отправлено спустя 35 секунд:
Ты глаза то починил кстати? А то смотрю на форум зачастил. Не вредно ещё?
Заниматься стОит только тем, что считается невозможным.


Вернуться в «Системы ЧПУ»