PDA

Просмотр полной версии : WinCE, SDK, CoDeSys!!!



JoSaint
19.03.2013, 23:32
Доброго времени суток уважаемые коллеги!!!
Прошу тех людей кто имеет хоть какие то знания или навыки по данной теме помочь разобраться.
Имеется сенсорная китайская панель производства Kinco с Win CE 5.0, со встроенным ПЛК так сказать(Китайцы же твердят именно так: there is no PLC in Kinco Panel,but because codesys has soft PLC function,then Kinco Panel can do the same function as PLC).
Клиента который купил такую панельку совершенно не устроила встроенная визуализация. И вот я решил разобраться с тем а можно ли написать свое собственное приложение на С# для этой панельки. Узнал что на VS2008 есть возможность писать под Win CE. Набросал простенький проэкт залил все хорошо работает.
Теперь вот основная стадия, и вопрос в том как мне достучатся до внутреннего ПЛК? как это сделать? с чего начать? где прочитать?
Есть предоставленные ними SDK, что с ними делать? нужны ли они вообще?
Заранее спасибо!

Yegor
20.03.2013, 06:23
Можете показать, что там за СДК? На панели должна работать исполнительная среда (http://www.codesys.com/products/codesys-runtime.html), которую кому попало не раздают, и она денег стоит. Без этого кодесисом сей девайс не запрограммировать. С самим кодесисом, конечно, поставляется софтовый ПЛК, но я там видел только под WinNT.

На крайняк можно и прямо в сишарповое приложение программу управления запихать, и обойтись таким образом без кодесиса, но это, конечно, страшно.

JoSaint
20.03.2013, 13:25
как раз CoDeSys RunTime там и установлен, буду называть вещи своими именами, спасибо на этом.
Что касается показать SDK? что мне именно нужно показать?
вот строчки из хелпа : This section contains information about the MT6000_SDK software development kit (SDK) for Platform Builder 5.0®.
ну и куча библиотек
моя аська 442199301
мой скайп josaint13
мне очень интересно и нужно можно пересечься там и получится более интерактивные.
Заранее спасибо

capzap
20.03.2013, 14:03
вопрос в том как мне достучатся до внутреннего ПЛК

откройте в редакторе таргет на панель, может будет ясно что и где там

JoSaint
20.03.2013, 15:59
откройте в редакторе таргет на панель, может будет ясно что и где там

В директории куда установились Target файлы панельки есть папки Lib и PlcConf, если Lib - Library(Библиотека), то в PlcConf три (*.eds) файла для CanOpen и файл Kinco_MT6000.cfg -вот его содержимое:
----------------------------------------------------------
[Global]
AddressMode=Flat

[Module.Root]
Id=2
Name=MT6000 configuration
SubModul1=Type=Var,Class=BUSMASTER
;SubModul2=Type=Var,Class=CARD
Icon=Plcconf.ico
Alignment=5

[Module.CanDevice]
Name=CanDevice
Id=78379
DeviceType=CANDEVICE
BasisPrmDlg=FALSE
Class=BUSMASTER
Icon=codsmall.ico
;FixedNumOfPDOs=1

[Module.CanMaster]
Name=CanMaster
Id=5
DeviceType=CANMASTER
CreateBitChannels=TRUE
NodeIdEditable=Yes
AdrEditable=Yes
Class=BUSMASTER
Icon=codsmall.ico
SubModul1=Type=Var,Class=CAN_SLAVE
Param1=Name=EnableDiags,Section=BoolType
Param2=Name=UpdateTask,Section=TaskName
ExtendMenu=1

[Module.DEVNETMaster]
Name=DeviceNetMaster
Id=1717
DeviceType=DEVNETMASTER
CreateBitChannels=TRUE
NodeIdEditable=Yes
AdrEditable=Yes
;Class=BUSMASTER
Icon=codsmall.ico
SubModul1=Type=Var,Class=DEVNET_SLAVE
Param1=Name=EnableDiags,Section=BoolType
Param2=Name=UpdateTask,Section=TaskName
ExtendMenu=1
;ShowExpert=1

[Module.DevNetSlave]
Name=DevNetSlave
Id=1818
DeviceType=DEVNETSLAVE
SymbolicNames=unlocked
NodeIdEditable=Yes
AdrEditable=Yes
Class=DEVNET_SLAVE
Icon=Vis.ico
Param1=Name=EnableDiags,Section=BoolType
ShowAdrCtrls=I,O
;ShowExpert=1


[Module.CanSlave]
Name=CanSlave
Id=693734
DeviceType=CANSLAVE
SymbolicNames=unlocked
NodeIdEditable=Yes
AdrEditable=Yes
Class=CAN_SLAVE
Icon=Vis.ico
Param1=Name=EnableDiags,Section=BoolType
ExcludeEntries='filename'
OptionalDevice=FALSE
NoInitialize=FALSE
Libraries=3S_CANopenMaster.lib

[Module.CanSlaveOld]
Name=CanSlaveOld
Id=693734
DeviceType=CANSLAVE
SymbolicNames=unlocked
NodeIdEditable=Yes
AdrEditable=Yes
Class=CAN_SLAVE
Icon=Vis.ico
OldStyleMapping=TRUE
Param1=Name=EnableDiags,Section=BoolType
PossibleEntries='filename'


[Module.DPMaster]
Name=DP-Master
Id=983083
DeviceType=DPMASTER
CreateBitChannels=TRUE
BitChannelIcon=Globsmal.ICO
NodeIdEditable=Yes
AdrEditable=Yes
;Class=BUSMASTER
Icon=ODEditor.ico
SubModul1=Type=Var,Class=DP_SLAVE
Param1=Name=EnableDiags,Section=BoolType
Param2=Name=UpdateTask,Section=TaskName
Param3=Name='Byte order word modules motorola',Section=ByteOrder
ExtendMenu=1

[Module.DPSlave]
Name=DPSlave
Id=69230394
DeviceType=DPSLAVE
SymbolicNames=unlocked
NodeIdEditable=Yes
AdrEditable=Yes
EnableChannelEdit=TRUE
Class=DP_SLAVE
Icon=plcbrowse.ico
Param1=Name=EnableDiags,Section=BoolType

[Module.DPSlave2]
Name=DPSlave
Id=69230394
DeviceType=DPSLAVE
SymbolicNames=unlocked
NodeIdEditable=Yes
AdrEditable=Yes
EnableChannelEdit=TRUE
Class=BUSMASTER
Icon=plcbrowse.ico
Param1=Name=EnableDiags,Section=BoolType
PossibleEntries='HIL_049F.GSD','TCDPSLAV.GSD','HMS _1003.GSD','HMS_1013.gsd','HIL_7504.GSD'
SingleSlave=FALSE
ShowDPDialog=TRUE

[Parameter.BoolType]
Id=10001
Type=INT
Class=Symbolic
Help=TTHelp
;TTHelp=Hier kцnnten Sie Ihre symbolischen Konstanten beschreiben
Symbol1=No
Value1=0
Symbol2=Yes
Value2=1
Default=2

[Parameter.TaskName]
Id=10002
Type=STRING
Class=Simple
Help=TTHelp
TTHelp= The name of the task, which initiates the buscycles.
Default=All

[Parameter.ByteOrder]
Id=10003
Type=INT
Class=Symbolic
Help=TTHelp
TTHelp= The processdata of word-oriented modules are stored in intel/motorola format.
Default=0
Symbol1=No
Value1=0
Symbol2=Yes
Value2=1
-------------------------------------------------
куда тут смотреть? это какое то описание модулей интерфейсов DP, CanOpen
А файл Kinco_MT6000.cfg открывается краказябрами!
Просвятите пожалуйста

BETEP
20.03.2013, 16:01
есть архив для скачивания "Codesys software for MT6000 series"
это не оно?

capzap
20.03.2013, 16:08
куда тут смотреть? это какое то описание модулей интерфейсов DP, CanOpen
А файл Kinco_MT6000.cfg открывается краказябрами!
Просвятите пожалуйста

:) а чего Вы хотели увидеть, откройте таргет на плк100, там тоже самое будет, каждый модуль то ли вход то ли выход то ли еще чего нибудь будет иметь свой идентификационный номер.
Разве в этом смысл чтоб увидеть внутренности, Вам лучше начать спрашивать как "украсить" визуализацию, чтоб она устраивала заказчика.
Вот человек может многое Вам поведать http://www.owen.ru/forum/showpost.php?p=100879&postcount=31

JoSaint
20.03.2013, 16:17
есть архив для скачивания "Codesys software for MT6000 series"
это не оно?

Да это оно, именно это я и себе качал

Yegor
20.03.2013, 16:27
Вот в этом списке у вас панель присутствует?

http://images.devs-on.net/Image/DVpGZtSUujxFw5Fl-TargetSettings.png

JoSaint
20.03.2013, 16:37
:) а чего Вы хотели увидеть, откройте таргет на плк100, там тоже самое будет, каждый модуль то ли вход то ли выход то ли еще чего нибудь будет иметь свой идентификационный номер.
Разве в этом смысл чтоб увидеть внутренности, Вам лучше начать спрашивать как "украсить" визуализацию, чтоб она устраивала заказчика.
Вот человек может многое Вам поведать http://www.owen.ru/forum/showpost.php?p=100879&postcount=31

Спасибо за ответ! Очень уж мне хочется разобраться с написанием приложений(собственных) для этой панельки да и вообще для подобных задач это лишним не будет. Для личного опыта и тд.

JoSaint
20.03.2013, 16:41
Вот в этом списке у вас панель присутствует?

http://images.devs-on.net/Image/DVpGZtSUujxFw5Fl-TargetSettings.png

Да конечно, таргет я установил создаю проект заливаю в панелькоу на этом этапе все хорошо!
Теперь вот что бы те переменные которые у меня в есть в кодесисе вытащить в мое приложение написанное на C#. простенькое не связанное ни с чем я залил и оно работает. Вот как связать!? ХЗ

JoSaint
20.03.2013, 16:42
Да конечно, таргет я установил создаю проект заливаю в панелькоу на этом этапе все хорошо!
Теперь вот что бы те переменные которые у меня в есть в кодесисе вытащить в мое приложение написанное на C#. простенькое не связанное ни с чем я залил и оно работает. Вот как связать!? ХЗ

Как вы вставили сюда картинку???:confused:

Yegor
20.03.2013, 16:57
проект заливаю в панелькоу на этом этапе все хорошоЁлки-палки, с этого начинать надо было. А то «как мне достучатся до внутреннего ПЛК», блин =)

Ну, теперь надо посмотреть, что там в конфигурацию добавить можно. На овеновских ПЛК в подобных случаях (самопальный ЧМИ) используется Modbus Master. В общем случае — если ЧМИ делается под большую винду — применяется OPC-сервер, но этот вариант для Win CE вряд ли канает. Короче, надо выяснить, что эта панель может предоставить по TCP/IP помимо кодесисовского протокола, т.к. он закрытый. ну а дальше подрубаться на локалхосте.

capzap
20.03.2013, 16:58
а понравится ли заказчику, когда Вы не захотите поддерживать собственную разработку, ему придется возвращаться к разбитому корыту. Видимо у Вас есть огромный опыт написания собственной визуализации, если так уверены в своих силах, в таком случае успехов

capzap
20.03.2013, 17:01
Ёлки-палки, с этого начинать надо было. А то «как мне достучатся до внутреннего ПЛК», блин =)

Ну, теперь надо посмотреть, что там в конфигурацию добавить можно. На овеновских ПЛК в подобных случаях (самопальный ЧМИ) используется Modbus Master. В общем случае — если ЧМИ делается под винду — применяется OPC-сервер, но этот вариант для Win CE вряд ли канает. Короче, надо выяснить, что эта панель может предоставить по TCP/IP помимо кодесисовского протокола, т.к. он закрытый. ну а дальше подрубаться на локалхосте.
А винсе оддерживает в полной мере многозадачность?
Это чтоб работал КДС РТ и собственная программа которая будет стучать в локальный порт по модбасТСР, внутренних реализаций СОМ-портов даже в винде не легко отыскать

Yegor
20.03.2013, 17:06
Ну, рантайм по-любому с приоритетом реального времени должен крутиться. Да и многозадачная она.

JoSaint
20.03.2013, 17:10
а понравится ли заказчику, когда Вы не захотите поддерживать собственную разработку, ему придется возвращаться к разбитому корыту. Видимо у Вас есть огромный опыт написания собственной визуализации, если так уверены в своих силах, в таком случае успехов
Огромного опыта у меня нет, когда нибудь начинать надо, возможно это и не пригодится но для себя самое оно.

capzap
20.03.2013, 17:11
Ну, рантайм по-любому с приоритетом реального времени должен крутиться. Да и многозадачная она.

а как это будет выглядеть, вот чтоб попасть на рабочий стол в семене или винтеке, я не даю запускаться рантайму и что тогда, собственному приложению нескем будет общаться, кроме как с удаленными устройствами, зачем тогда вообще КДС на этой панели, те кторые я посмотрел на сайте не несут в себе входа/выхода, в таком случае даже можно ставить вопрос иначе, а зачем тогда панель, возьмите ПК и поставте СКАДУ

Yegor
20.03.2013, 17:50
а как это будет выглядеть, вот чтоб попасть на рабочий стол в семене или винтеке, я не даю запускаться рантаймуА каким образом возможность запуска рантайма вообще зависит от рабочего стола? Насколько я понимаю, в нормальной реализации под WinCE рантайм работает себе в фоне с приоритетом реального времени (это не значит, что ресурсов больше никому не остаётся). Ну а апликашки и, в частности, рабочий стол спокойно висят себе где-нибудь за вторым кольцом защиты и рантайму вообще никак не мешают.

JoSaint
20.03.2013, 17:55
http://savepic.ru/4382872m.jpg
Появляется возможность работать только с CanOpen(master,slave)

capzap
20.03.2013, 17:55
так смысл то в том, чтоб сторонняя программа была поверх остальных приложений, а разве возможно запущеный рантайм отправить на задний план?

JoSaint
20.03.2013, 18:33
так смысл то в том, чтоб сторонняя программа была поверх остальных приложений, а разве возможно запущеный рантайм отправить на задний план?

Ну так можно ж написать программу для софтПЛК но без визуализации, а на передний план собственно писанное приложение. А как тогда более правильно поступить в данной ситуации коль уж говорите что так не правильно!!!
Ну реально тогда получается что есть сенсорная панелька с сафтПЛК но без мощной визуализации. На сайте codesys есть такая штука как CODESYS TargetVisu – Control and Visualization on one Device, возможно к ее помощи необходимо прибегнуть.

Yegor
20.03.2013, 19:52
JoSaint, вам надо выяснить, работает ли на вашем «ПЛК» TCP/IP-стек. Если да, то всё в шоколаде — засовываете в проект какой-нибудь modbus.lib и вперёд с песней. Ну, понятно, что в своей сишарповой проге надо по модбасу на локалхост тогда коннектиться. Для шарпа библа есть NModbus, но я не знаю, как она в проект под WinCE пойдёт. Протокол простенький — можно и ручками написать. А может и готовый SCADA/HMI-пакет под ВинЦЕ найдёте.

*** хотя что-то я вот не помню, могут ли кодесисовские modbus-библиотеки в TCP работать ***

JoSaint
20.03.2013, 20:24
JoSaint, вам надо выяснить, работает ли на вашем «ПЛК» TCP/IP-стек. Если да, то всё в шоколаде — засовываете в проект какой-нибудь modbus.lib и вперёд с песней. Ну, понятно, что в своей сишарповой проге надо по модбасу на локалхост тогда коннектиться. Для шарпа библа есть NModbus, но я не знаю, как она в проект под WinCE пойдёт. Протокол простенький — можно и ручками написать. А может и готовый SCADA/HMI-пакет под ВинЦЕ найдёте.

*** хотя что-то я вот не помню, могут ли кодесисовские modbus-библиотеки в TCP работать ***

Это проверить на моем SoftPLC с помощью библиотеки SysLibSocket???
можно ж и через сокет как с кодесиса так и в шарпе через него же работать, необязательно MODBUS???

capzap
20.03.2013, 20:31
Даже старший сосед с Юго-Востока имеет проблемы с мультипликацией после продолжительной работы, а Вы хотите собственную написать и без утечек памяти, сильно сомневаюсь

Stenvel
20.03.2013, 22:37
Такая система используется в панельных контроллерах EATON (бывш. Moeller). Стоит WinCE + runtime codesys + runtime galileo (визуализация). Там связь между runtime-ми как раз вроде идет по протоколу codesys через localhost. Так что думаю что если вы ручками пропишите в контроллере обмен через сокеты (modbus или свой протокол) - то думаю что будет работать. Сам раньше интересовался данной темой и хотел на панели weintek найти codesys runtime...

Yegor
21.03.2013, 06:02
Это проверить на моем SoftPLC с помощью библиотеки SysLibSocket???
можно ж и через сокет как с кодесиса так и в шарпе через него же работать, необязательно MODBUS???Да. Да. Имелся в виду модбас поверх сокетов. Никто не запрещает пересылать через сокеты что-нибудь совсем другое по иному протоколу. Только аккуратнее там с велосипедами.