Страница 2 из 3
Re: Отправка SMS оповещения об окончании работы
Добавлено: 19 окт 2024, 21:19
vtgmfg
AlanDerby писал(а): ↑
Программа Cmd2sms почему-то не запускается. Выдает сообщение об ошибке
я чето пробовал почитать про отправку смс - везде какие то модемы, даже плата за сообщение и прочая архаика. к телеграмму получилось довольно быстро.
и в общем то нафиг эти смс
Re: Отправка SMS оповещения об окончании работы
Добавлено: 20 окт 2024, 01:01
AlanDerby
Сколько не мучал bat-файл. Не удалось ничего настроить. Причем если отправляю из строки браузера, то работает, а если из bat-файла, то нет. В итоге сделал на vbs и тоже на Телеграмм. Сообщения приходят, но есть заковыка.
Если запускаю скрипт из VBScript Editor, или вешаю его на кнопку в mach3, то он ругается на тест, который я отправляю, т.к. там, по правилам должны быть команды g-кода, а не набор произвольных символов, но файл успешно сохраняет и сообщения в Телеграмм приходят. А вот если вешаю тот же скрипт на М-команду, то не приходят. Видимо на этом месте выполнение скрипта прекращается.
Думаю теперь, что с этим делать.
Re: Отправка SMS оповещения об окончании работы
Добавлено: 20 окт 2024, 12:23
AlanDerby
Выяснил, что если при записи данных в файл писать латиницей, а не кириллицей, то и М-коды проходят.
Т.е. если написать code "Работа окончена!", то ничего не отправится, а если code "Work is done!", то все ок.
Пока получается так:
Это скрипт для Mach3, который записывает сообщение "Work is done!" в файл Message.txt, расположенный по адресу C:\Mach3\GCode\Message.txt:
MyTeachFile = "Message.txt"
Err = OpenTeachFile(MyTeachFile)
If Err <> 0 Then
Code "Work is done!"
CloseTeachFile()
End If
Сохраняем его в виде М-команды, например у меня это М99985
Далее создаем VisualBasicScript (VBS). Для этого открываем Блокнот, копируем в него скрипт, в соответствующие места вписываем свой "токен id" и "чат id", сохраняем с расширением vbs, запускаем. Где и как получить "токен id" и "чат id" для Телеграмма не расписываю, этой информации полно в сети.
Option Explicit
Dim filePath, lastModified, botToken, chatId, fso, file
' Настройки
filePath = "C:\Mach3\GCode\Message.txt" ' Путь к файлу
botToken = "Ваш токен бота" ' Токен бота
chatId = "Ваш чат id" ' chat_id
Set fso = CreateObject("Scripting.FileSystemObject")
' проверяем, сущестует ли указанный файл. Если его нет, выходим из скрипта
If Not fso.FileExists(filePath) Then WScript.Echo "Файл не найден: " & filePath & WScript.Quit
' если есть, то запоминаем последнюю дату и время обновления
lastModified = fso.GetFile(filePath).DateLastModified
' запускаем цикл периодической проверки файла.
Do
Set file = fso.GetFile(filePath)
If file.DateLastModified <> lastModified Then
lastModified = file.DateLastModified
Dim content, xmlhttp, json
content = CreateObject("Scripting.FileSystemObject").OpenTextFile(filePath, 1).ReadAll
Set xmlhttp = CreateObject("MSXML2.ServerXMLHTTP.6.0")
json = "{""chat_id"":""" & chatId & """, ""text"":""" & Replace(content, """", "\""") & """}"
xmlhttp.Open "POST", "https://api.telegram.org/bot" & botToken & "/sendMessage", False
xmlhttp.setRequestHeader "Content-Type", "application/json"
xmlhttp.Send json
End If
WScript.Sleep 10000 ' Задержка 10 секунд
Loop
После того, как сохранили и закрыли скрипт, запускаем, дважды щелкнув по нему мышкой. Он будет работать в фоновом режиме. Если нужно, чтобы он автоматически запускался с Mach 3, то либо ставим его в автозапуск Windows, либо пишем bat-файл, который будет запускать скрипт вместе с Mach3. Но такой способ хуже тем, что скрипт будет запускаться каждый раз с запуском Mach3 и в итоге их может исполняться в памяти несколько штук. Так что я бы выбрал первый вариант, чтобы скрипт запускался при запуске ОС.
Заходим в Mach3, вводим команду М99985 и, если все сделано правильно, получаем в Телеграмм сообщение "Work is done!". Что и требовалось получить.
Также, теоретически, можно таким образом сохранять статистику в отдельный файл Exсel, или даже в Online таблицы Google Sheets, но лично мне это пока не нужно, так что остановлюсь на этом.
Re: Отправка SMS оповещения об окончании работы
Добавлено: 21 окт 2024, 03:58
vtgmfg
AlanDerby писал(а): ↑
Выяснил, что если при записи данных в файл писать латиницей, а не кириллицей, то и М-коды проходят.
Т.е. если написать code "Работа окончена!", то ничего не отправится, а если code "Work is done!", то все ок.
ну да - и отправка в тг не хочет работать если русские буквы и еще в моем случае чпу при записи cmd как то портит его формат так что уже неважно - можно все в нем удалить и вставить английский текст - он все равноне уже не работает. как так хз. винда ничего не видит с файлом. но он длиньше на байт. чем такой же но созданный изначально с английским текстом. спасибо кириллу с мефодием
Re: Отправка SMS оповещения об окончании работы
Добавлено: 21 окт 2024, 06:56
lkbyysq
AlanDerby писал(а): ↑
если отправляю из строки браузера, то работает, а если из bat-файла
AlanDerby писал(а): ↑
если написать code "Работа окончена!", то ничего не отправится, а если code "Work is done!", то все ок.
vtgmfg писал(а): ↑
отправка в тг не хочет работать если русские буквы
сдается мне, что матчасть надо однако учить
https://learn.microsoft.com/ru-ru/offic ... ile-method
(для просмотра содержимого нажмите на ссылку) Dim fs As New Scripting.FileSystemObject
Dim ASCII As Scripting.TextStream
Dim Unicode As Scripting.TextStream
Dim ConvertToUnicode As Scripting.TextStream
Set ASCII = fs.CreateTextFile("C:\ASCII.txt", True, False)
ASCII.WriteLine "Проверочка!!!"
ASCII.Close
Set Unicode = fs.CreateTextFile("C:\unicode.txt", True, True)
Unicode.WriteLine "Проверочка!!!"
Unicode.Close
Set ASCII = fs.OpenTextFile("C:\ASCII.txt")
Set ConvertToUnicode = fs.CreateTextFile("C:\ConvertToUnicode.txt", True, True)
s = ASCII.ReadAll
ConvertToUnicode.Write s
ASCII.Close
ConvertToUnicode.Close
Re: Отправка SMS оповещения об окончании работы
Добавлено: 21 окт 2024, 07:36
vtgmfg
lkbyysq писал(а): ↑
сдается мне, что матчасть надо однако учить
мне и английские буквы норм
Re: Отправка SMS оповещения об окончании работы
Добавлено: 21 окт 2024, 07:39
lkbyysq
vtgmfg писал(а): ↑21 окт 2024, 07:36
мне и английские буквы норм
Вычеркиваю
Re: Отправка SMS оповещения об окончании работы
Добавлено: 21 окт 2024, 07:52
vtgmfg
да я вас давно вычеркнул
Re: Отправка SMS оповещения об окончании работы
Добавлено: 21 окт 2024, 09:03
AlanDerby
lkbyysq писал(а): ↑
сдается мне, что матчасть надо однако учить
Кириллица не проходит не из-за VBA, а из-за Mach3. Я ранее писал, что если запускаю в Mach3 скрипт на создание файла через Script Editor или если вешаю код скрипта на кнопку, то сообщение с кириллицей проходит. Однако если тот же самый скрипт повесить на М-команду, то скрипт не срабатывает. Кстати, давно заметил, что в Mach3 скрипты работают по разному, в зависимости от того, как они запущены.
Re: Отправка SMS оповещения об окончании работы
Добавлено: 21 окт 2024, 09:43
lkbyysq
AlanDerby писал(а): ↑21 окт 2024, 09:03
Кириллица не проходит не из-за VBA, а из-за Mach3.
Т.е. Вы хотели сказать, что мач "не хочет писать в файл"?
Может быть.
Потому, что фраза "Не проходит сообщение" - это не по мач, мач сообщений не отправляет.
А вот бот телеграма кракозябры (т е. недопускаемую кодировку) теоретически может и не принимать. Я не проверял.
Re: Отправка SMS оповещения об окончании работы
Добавлено: 21 окт 2024, 09:50
lkbyysq
Моё мнение - мач одинаково относится к обработке G и М команд. Закавыка в другом, где-то просто ошибка.
Может быть в том, что Вы проверяете через "повесить макрос на кнопку в маче". Может применительно к этим кнопкам есть ограничения? Я в маче не работаю. Я знаю, что мач пользуется базовыми функциями windows и подчиняется общим правилам windows-приложений.
Суть. Если в маче есть функция, которая может записать в файл, то можно написать макрос и привязать его к М-команде. И мач должен писать в файл.
Сначала проверяете, пишет ли он в файл. Потом проверяете ручками что он написал и в какой кодировке. И только потом занимаетесь отправкой в телеграм. Ибо телеграм и браузер - суть web. Мач - суть windows. У них по дефолту кодировки разные.
Несоблюдение такой последовательности действий может приводить к ошибочным выводам.
Re: Отправка SMS оповещения об окончании работы
Добавлено: 21 окт 2024, 10:44
vtgmfg
ну а как - на каждом г-коде вызывать скрипт и только по его окончании продолжать?
Re: Отправка SMS оповещения об окончании работы
Добавлено: 21 окт 2024, 13:17
AlanDerby
lkbyysq писал(а): ↑
Моё мнение - мач одинаково относится к обработке G и М команд. Закавыка в другом, где-то просто ошибка.
Все уже работает. Ошибки нет. Как говорил ранее, если вешаю макрос на кнопку, т.е. при нажатии этой кнопки в Mach, запускается макрос, то Mach сохраняет файл с кириллицей, хотя и ругается. Далее скрипт VBS видит, что в файле произошли изменения, и отправляет содержимое файла в Телеграмм. При этом VBS-скрипту без разницы - латиница там или кириллица.
Если же я тот же самый макрос Mach3, который отлично отрабатывает по кнопке, пытаюсь запустить М-командой, то Mach3, в случае с кириллицей, выдает ошибку и файл не сохраняет. Соответственно и сообщение ни куда не уходит. А с латиницей все нормально.
vtgmfg писал(а): ↑
ну а как - на каждом г-коде вызывать скрипт и только по его окончании продолжать?
Ну да, ставите М-команду на отправку сообщения в том месте, где его нужно отправить. Макрос всего навсего переписывает файл, это происходит быстро. Соответственно на разные случаи нужно сделать разные М-команды, но записывать свои сообщения они могут в один и тот же файл.
Re: Отправка SMS оповещения об окончании работы
Добавлено: 21 окт 2024, 15:26
vtgmfg
не это я имел ввиду. с М-кодами ясно и вроде как оси в этот момент стоЯт.
а вот с Gкодами как? они ж как из ведра.
но правда они и не нужны особо чтоб по их поводу смс слать. коррекции H и D интересно перехватывать - но это можно придумать как. хотя нужно править постпроцессор(
Re: Отправка SMS оповещения об окончании работы
Добавлено: 21 окт 2024, 18:35
AlanDerby
Вообще не понял. Вам нужно, чтобы станок вам о каждом своем перемещении и действии докладывал? Зачем?
Нужно исходить из задачи. В чем ваша задача состоит? Сформулируйте, тогда можно будет подумать над решением.
Re: Отправка SMS оповещения об окончании работы
Добавлено: 21 окт 2024, 18:44
vtgmfg
AlanDerby писал(а): ↑
Сформулируйте, тогда можно будет подумать над решением.
да не. я примерно представляю. мне надо имеющимися возможностями довести чпу до нужных мне кондиций. передача статуса в тг это чисто по пути получилось. H и D как вытянуть примерно понятно, а вот с кодами ошибок хуже. и это не мач3
Re: Отправка SMS оповещения об окончании работы
Добавлено: 22 окт 2024, 12:31
Cvazist
Re: Отправка SMS оповещения об окончании работы
Добавлено: 22 окт 2024, 16:38
vtgmfg
что через камеру? код ошибки? потом распознать в тексте цифру. потом с помощью какойнить мошеннической проги нажать ОК на окошке чтоб его погасить. издевательство
Re: Отправка SMS оповещения об окончании работы
Добавлено: 22 окт 2024, 17:31
AlanDerby
Идея, кстати, не так плоха.
На станок направить ip-камеру, чтобы видеть, что он делает, а на управляющем ПК настроить удаленный доступ, например через AnyDesk.
Включить на управляющем станке демонстрацию экрана, а с домашнего ПК контролировать, что и как происходит.
Для полного счастья не хватает только робо-руки, чтобы заготовки менять

Re: Отправка SMS оповещения об окончании работы
Добавлено: 22 окт 2024, 18:35
vtgmfg
AlanDerby писал(а): ↑
а управляющем ПК настроить удаленный доступ, например через AnyDesk.
так он есть, только родной RD, винда не хоум-эдишн. там можно и код посмотреть и ОК нажать.
зачем камеру то городить еще.. камеру можно на стол станка направить.