Post by blitz on Can't get SMC_SmoothPath to work
CODESYS Forge
talk
(Post)
This code works well: PROGRAM PLC_PRG VAR execute : BOOL; abort : BOOL; doMDI : BOOL; manualDataInput : STRING(1024) := 'N5 G01 X0.00 Y200.00 N6 G01 X200.00 Y200.00 N7 G01 X200.00 Y0.00 N8 G01 X0.00 Y0.00'; stringStreamArray: ARRAY[0..NUMBER_OF_CHAINS-1] OF SMC_StringStream2 ; i : UDINT; readNCFromStream : SMC_ReadNCFromStream; sentencesFromStringSteam : SMC_GSentenceQueue ; interpreter : SMC_NCInterpreter; interpreterGeoInfoBuffer: ARRAY[1..GEO_INFO_BUFFERS_SIZE] OF SMC_GeoInfo; roundPath : SMC_RoundPath; roundPathGeoInfoBuffer: ARRAY[1..GEO_INFO_BUFFERS_SIZE] OF SMC_GeoInfo; END_VAR VAR CONSTANT MDI_FILE_NAME : STRING := 'MDI.nc'; NUMBER_OF_CHAINS : UDINT := 15; GEO_INFO_BUFFERS_SIZE : DINT := 500; END_VAR readNCFromStream.bExecute := interpreter.bExecute := roundPath.bExecute := execute; readNCFromStream.bAbort := interpreter.bAbort := roundPath.bAbort := abort; IF doMDI THEN stringStreamArray[0].Init(MDI_FILE_NAME); stringStreamArray[0].AppendData(manualDataInput); stringStreamArray[0].SetEndOfData(); i := 0 ; WHILE i < NUMBER_OF_CHAINS DO readNCFromStream.aStream[i] := stringStreamArray[i]; i := i + 1 ; END_WHILE readNCFromStream.bExecute := TRUE; IF readNCFromStream.bBusy THEN ; END_IF END_IF readNCFromStream( fDefaultVel := 10, fDefaultAccel := 10, fDefaultDecel := 10, fDefaultVelFF := 10, fDefaultAccelFF := 10, fDefaultDecelFF := 10, sentences := sentencesFromStringSteam ); interpreter( sentences:= sentencesFromStringSteam, nSizeOutQueue:= SIZEOF(interpreterGeoInfoBuffer), pbyBufferOutQueue:= ADR(interpreterGeoInfoBuffer)); roundPath( poqDataIn := interpreter.poqDataOut, dRadius := , dAngleTol := , nSizeOutQueue := SIZEOF(roundPathGeoInfoBuffer), pbyBufferOutQueue := ADR(roundPathGeoInfoBuffer));
Last updated: 2026-01-09
Post by thommy54 on Raspi-Cam: CameraStream.project nicht zum Laufen zu bringen
CODESYS Forge
talk
(Post)
Hallo, Ich bringe das CameraStream.project nicht zum Laufen. Ich sehe die Ursache darin, das das Beispielprogramm sehr sparsam mit Programm-Kommentaren umgeht (von der Hilfe gar nicht zu reden). Ich habe beide Varianten bei der zu ändernden Zielvariable getestet: //copy video.htm to the webserver; //the location of the webserver depends on the used Apache version as mentioned in online help hDirHtmlTest:=SysDirOpen( szDir:='/var/www', pDirInfo:= ADR(dirInfo), diMaxDirEntry:=iMaxDirEntry, szDirEntry:=szDirEntry, pResult:=ADR(iDirHtmlError)); IF (iDirHtmlError = 0) THEN SysDirClose(hDir:=hDirHtmlTest); SysFileCopy('/var/www/video.htm', '$$PlcLogic$$/Application/video.htm', ADR(dwCopySize)); ELSE .... als auch hDirHtmlTest:=SysDirOpen( szDir:='/var/www/html', pDirInfo:= ADR(dirInfo), diMaxDirEntry:=iMaxDirEntry, szDirEntry:=szDirEntry, pResult:=ADR(iDirHtmlError)); IF (iDirHtmlError = 0) THEN SysDirClose(hDir:=hDirHtmlTest); SysFileCopy('/var/www/html/video.htm', '$$PlcLogic$$/Application/video.htm', ADR(dwCopySize)); ELSE .... Die Url-Streams habe ich gelassen wie sie vorgegeben waren: urlStream := CONCAT('http://', CONCAT(sIPAddress, '/video.htm')); urlPicture := CONCAT('http://', CONCAT(sIPAddress, '/cam_pic.php')); In der Webvisu im Browser komme ich maximal dahin wie im Screeshot Video_Visu_1 zu sehen. Also scheint der Link zu video.htm zu klappen. Das der zu cam_pic.php nicht klappt, wundert mich nicht, denn es existiert nicht und wird auch nicht evtl. am rechten Ort angelegt. Ich bin mir vollkommen im Unklaren: muss da was auf dem Raspberry Pi im Hintergrund laufen , z.B. raspivid . Welcher Programmteil bedient die Cam ? Ich erkenne auch nicht, wo ein einzelnes picture entstehen soll. Wäre dankbar, wenn ich hier etwas Hilfe bekommen könnte. Evtl. gibt es Probleme mit der von mir verwendeten Codesys-Version 3.5.20.1 ? Ich benutze einen Raspberry 4 Rev.1.2. Grüße Thomas
Last updated: 2024-07-04
Post by paulpotat on cm4 runtime problem
CODESYS Forge
talk
(Post)
Hello, I have exactly the same issue, with the following configuration : Hardware version >>> cat /proc/cpuinfo processor : 0 model name : ARMv7 Processor rev 3 (v7l) BogoMIPS : 108.00 Features : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm crc32 CPU implementer : 0x41 CPU architecture: 7 CPU variant : 0x0 CPU part : 0xd08 CPU revision : 3 processor : 1 model name : ARMv7 Processor rev 3 (v7l) BogoMIPS : 108.00 Features : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm crc32 CPU implementer : 0x41 CPU architecture: 7 CPU variant : 0x0 CPU part : 0xd08 CPU revision : 3 processor : 2 model name : ARMv7 Processor rev 3 (v7l) BogoMIPS : 108.00 Features : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm crc32 CPU implementer : 0x41 CPU architecture: 7 CPU variant : 0x0 CPU part : 0xd08 CPU revision : 3 processor : 3 model name : ARMv7 Processor rev 3 (v7l) BogoMIPS : 108.00 Features : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm crc32 CPU implementer : 0x41 CPU architecture: 7 CPU variant : 0x0 CPU part : 0xd08 CPU revision : 3 Hardware : BCM2711 Revision : a03141 Serial : 10000000d5be5b5f Model : Raspberry Pi Compute Module 4 Rev 1.1 Kernel version >>> uname -a Linux raspberrypi 6.1.21-v7l+ #1642 SMP Mon Apr 3 17:22:30 BST 2023 armv7l GNU/Linux OS Version >>> cat /etc/os-release PRETTY_NAME="Raspbian GNU/Linux 11 (bullseye)" NAME="Raspbian GNU/Linux" VERSION_ID="11" VERSION="11 (bullseye)" VERSION_CODENAME=bullseye ID=raspbian ID_LIKE=debian HOME_URL="http://www.raspbian.org/" SUPPORT_URL="http://www.raspbian.org/RaspbianForums" BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs" /boot/config.txt I added the following line : arm_64bit=0 CodeSys runtime version 4.10 Were you able to solve the issue @michelebianchi ? Any help with this would be appreciated... BR
Last updated: 2024-08-28
Post by elektron785 on GPIO mit Codesys Virtual Control for Linux ARM64 SL
CODESYS Forge
talk
(Post)
Hallo zusammen, ich möchte an einem Entwicklungsboard auf dem der i.MX 8M Plus von NXP aufgesteckt ist die vier zur Verfügung gestellten GPIOs als Ausgänge verwenden. Ich habe mir dazu die Readme-Datei des GPIO-Beispiels von "C:\Program Files\CODESYS 3.5.20.40\CODESYS\CODESYS Control SL Extension Package\4.14.0.0\Examples\GPIO" angeschaut Die Übersicht der verfügbaren GPIOs sieht folgendermaßen aus - wobei ich das auf die reduziert habe, die für mich von Interesse sind: gpiochip0: GPIOs 0-31, parent: platform/30200000.gpio, 30200000.gpio: gpio-0 (SODIMM206 ) gpio-1 (SODIMM208 ) gpio-2 ( ) gpio-3 ( ) gpio-4 ( |sd-vsel ) out hi gpio-5 (SODIMM210 ) gpio-6 (SODIMM212 ) gpio-7 (SODIMM216 ) gpio-8 (SODIMM218 ) gpio-9 ( ) gpio-10 ( ) gpio-11 (SODIMM16 ) gpio-12 (SODIMM155 |regulator-usb1-vbus ) out lo gpio-13 (SODIMM157 ) gpio-14 (SODIMM185 |regulator-usb2-vbus ) out hi gpio-15 (SODIMM91 )** Füge ich nun das GPIO (1 Bit)-Gerät in meinem Codesys-Programm hinzu funktioniert der Bus solange bis ich die Richtung in den GPIO-Parametern von "not used" auf "Output" stelle (siehe Bild gpio_parameter). Dann funktioniert nach Download der Bus nicht mehr. Gibt es noch eine andere Möglichkeit das zu steuern oder muss ich noch Einstellungen tätigen? Für die Zeile mit dem echo (export/unexport) aus dem Beispiel fehlen mir trotz sudo die Zugriffsrechte. "The Kernel Linux has deprecated GPIO user space SysFS. However, the kernel config CONFIGGPIOSYSFS is still enabled on Toradex's BSP to support customers using it in their legacy applications. You can check the configuration by running zcat /proc/config.gz | grep CONFIGGPIOSYSFS. For GPIO access from userspace, the new char device API, also known as libgpiod, must be used." Dies steht in der Verwendung der GPIOs - eine Ausführung des zcat-Kommandos liefert ein =y zurück.
Last updated: 2025-03-17
Post by wildcard on Modbus Client Request Not Processed
CODESYS Forge
talk
(Post)
Hi, does anyone has a solution for this issue. I've the same problem. I've implemented a very simple client based on the Modbus Examples and connected the soft PLC to a Modbus Simulator. PROGRAM ModbusClient VAR initDone : BOOL := FALSE; errorID : ModbusFB.Error; client : ModbusFB.ClientTCP; timeout : UDINT := 500000; replyTimeout : UDINT := 200000; aUINT : ARRAY [0..8] OF UINT; clientRequestReadHoldingRegisters : ModbusFB.ClientRequestReadHoldingRegisters; clientRequestsCnt : UINT := 0; clientRequestsProcessCnt : UINT := 0; ipAddress : ARRAY[0..3] OF BYTE := [10,54,0,72]; END_VAR IF NOT initDone THEN initDone := TRUE; client(aIPaddr:=ipAddress, udiLogOptions:=ModbusFB.LoggingOptions.All); client(xConnect:=TRUE, ); clientRequestReadHoldingRegisters(rClient:=client, udiTimeOut:=timeout, uiUnitId:=1, uiStartItem:=0, uiQuantity:=4, pData:=ADR(aUINT[0]), udiReplyTimeout:=replyTimeout); clientRequestReadHoldingRegisters.xExecute := TRUE; clientRequestsCnt := 0; END_IF clientRequestReadHoldingRegisters(rClient:=client, udiTimeOut:=timeout, uiUnitId:=1, uiStartItem:=0, uiQuantity:=4, pData:=ADR(aUINT[0]), udiReplyTimeout:=replyTimeout, xExecute := TRUE); IF clientRequestReadHoldingRegisters.xError THEN clientRequestsCnt := clientRequestsCnt +1 ; errorID := clientRequestReadHoldingRegisters.eErrorID; END_IF clientRequestReadHoldingRegisters(rClient:=client, udiTimeOut:=timeout, uiUnitId:=1, uiStartItem:=0, uiQuantity:=4, pData:=ADR(aUINT[0]), udiReplyTimeout:=replyTimeout, xExecute := NOT clientRequestReadHoldingRegisters.xExecute); When the system is running I do get the following on the logs: 2024-05-13T10:18:07.443Z: Cmp=MODBUS lib, Class=1, Error=0, Info=0, pszInfo= Client.RequestProcessed ClientRequest,16#0164ADC561A0 unitId=1 fc=ReadHoldingRegisters id=2070 state=Error 2024-05-13T10:18:07.443Z: Cmp=MODBUS lib, Class=1, Error=0, Info=0, pszInfo= ClientRequest,16#0164ADC561A0 unitId=1 fc=ReadHoldingRegisters id=2070 change state Error -> None timestamp=63843421226 2024-05-13T10:18:08.444Z: Cmp=MODBUS lib, Class=1, Error=0, Info=0, pszInfo= ClientRequest,16#0164ADC561A0 unitId=1 fc=ReadHoldingRegisters id=2071 change state None -> Init timestamp=63844421420 2024-05-13T10:18:09.444Z: Cmp=MODBUS lib, Class=1, Error=0, Info=0, pszInfo= ClientRequest,16#0164ADC561A0 unitId=1 fc=ReadHoldingRegisters id=2071 change state Init -> Error timestamp=63845421675 But the errorID is jumping between OK and RequestNotProcessed. Any help is very appreciated which gives me a hint what I'm doing wrong. Thanks
Last updated: 2024-05-13
Post by honorzen543 on Desconto Temu [acu729640] 100€ Cupão Novos Usuários
CODESYS Forge
talk
(Post)
Descubra como o Temu coupon code ÂŁ100 off pode transformar suas compras online na plataforma Temu. Para os habitantes de Portugal, esta Ă© uma oportunidade imperdĂvel para economizar significativamente em suas compras favoritas. O cĂłdigo promocional [acu729640] oferecerá os máximos benefĂcios para os usuários em Portugal. Garantimos que este cĂłdigo proporcionará uma experiĂŞncia de compra econĂ´mica e satisfatĂłria. Com o Temu coupon ÂŁ100 off e o Temu 100 off coupon code, vocĂŞ terá acesso a descontos incrĂveis que farĂŁo a diferença no seu orçamento mensal. Aproveite esta chance para explorar tudo o que Temu tem a oferecer. Qual Ă© o CĂłdigo de Cupom para Temu ÂŁ100 Off? Os clientes novos e existentes tĂŞm a chance de obter benefĂcios incrĂveis utilizando nosso Temu coupon ÂŁ100 off no site e app da Temu. Aqui estĂŁo algumas vantagens especĂficas associadas ao uso deste cĂłdigo: [acu729640]: Desconto direto de ÂŁ100 em uma Ăşnica compra. [acu729640]: Pacote de cupons de ÂŁ100 para usos mĂşltiplos. [acu729640]: Desconto de ÂŁ100 para novos clientes. [acu729640]: CĂłdigo promocional de ÂŁ100 extra para clientes existentes. [acu729640]: Cupom de ÂŁ100 para usuários em “Portugal”. CĂłdigo de Cupom Temu 100€ Off para Novos Usuários Os novos usuários podem obter os maiores benefĂcios usando nosso cĂłdigo promocional no aplicativo Temu. Veja como o Temu coupon “Portugal” 100€ off e o Temu 100€ off for new users “Portugal” podem beneficiar vocĂŞ: [acu729640]: Desconto direto de ÂŁ100 para novos usuários. [acu729640]: Pacote de cupons de ÂŁ100 para novos clientes. [acu729640]: Pacote de cupons de atĂ© ÂŁ100 para usos mĂşltiplos. [acu729640]: Frete grátis por todo “Portugal”. [acu729640]: Desconto extra de 30% em qualquer compra para usuários de primeira viagem. Como Resgatar o CĂłdigo de Cupom Temu 100€ Off para Novos Clientes? Para aproveitar o Temu 100€ off e o Temu coupon code “Portugal” 100€ off for new users, siga este guia passo a passo: Baixe o aplicativo Temu e crie uma nova conta. Adicione produtos ao seu carrinho de compras. No checkout, insira o cĂłdigo [acu729640]. Confirme o desconto aplicado e finalize a compra. CĂłdigo de Cupom Temu 100€ Off para Usuários Existentes Usuários existentes tambĂ©m podem se beneficiar de nossos cĂłdigos de cupom no aplicativo Temu. Veja como o Temu 100 off coupon code e o Temu coupon code “Portugal” para existing customers podem ser Ăşteis: [acu729640]: Desconto extra de 100€ para usuários existentes da Temu. [acu729640]: Pacote de cupons de 100€ para compras mĂşltiplas. [acu729640]: Presente grátis com envio expresso em todo “Portugal”. [acu729640]: Desconto extra de 30% em cima do desconto existente. [acu729640]: Frete grátis para “Portugal”. Como Usar o CĂłdigo de Cupom Temu 100€ Off para Clientes Existentes? Para utilizar o Temu coupon code 100 euro off e o Temu discount code “Portugal” for existing users, siga os passos a seguir: Acesse o aplicativo Temu com sua conta existente. Escolha os produtos desejados e adicione-os ao carrinho. No checkout, insira o cĂłdigo [acu729640]. Finalize sua compra apĂłs verificar o desconto. Como Encontrar o CĂłdigo de Cupom Temu 100€ Off? Para achar o Temu coupon code 100€ off first order e os latest Temu coupons “Portugal”, vocĂŞ pode se inscrever na newsletter da Temu. AlĂ©m disso, siga as páginas de mĂdia social da Temu para estar sempre atualizado com os Ăşltimos cupons e promoções. Visite sites confiáveis de cupons em “Portugal” para encontrar os cĂłdigos mais recentes e funcionais. Como Funcionam os Cupons Temu 100€ Off “Portugal”? Os Temu coupon code 100€ off first time user e “Temu coupon code“Portugal”” oferecem descontos diretos em suas compras. Basta inserir o cĂłdigo promocional durante o checkout e o desconto será aplicado automaticamente, reduzindo o valor total da sua compra. É uma maneira simples e eficaz de economizar dinheiro e aproveitar mais suas compras na Temu. Como Ganhar Cupons na Temu “Portugal” Como Novo Cliente? Para obter o Temu coupon code “Portugal” 100€ off e o “Temu 100 off coupon code first order,” basta se cadastrar como novo cliente na plataforma Temu. Automáticamente receberá ofertas e cupons exclusivos, que podem incluir descontos diretos, frete grátis e promoções especiais, ajudando a maximizar suas economias. Quais SĂŁo as Vantagens de Usar Cupons Temu “Portugal”? Usar nossos cĂłdigos de cupom na Temu oferece numerosas vantagens, como: Temu 100€ off coupon code legit: Desconto de 100€ na primeira compra. Coupon code for Temu 100 off: Pacote de cupons de 100€ para usos mĂşltiplos. 70% de desconto em itens populares. Desconto extra de 30% para clientes existentes. AtĂ© 90% de desconto em itens selecionados. Presente grátis para novos usuários. Entrega gratuita por toda a Europa. Temu Presente Grátis “Portugal” e Desconto Especial para Novos e Existentes Usuários Existem mĂşltiplos benefĂcios ao usar nossos cĂłdigos de cupom Temu, incluindo o Temu 100€ off coupon code e o 100€ off Temu coupon code “Portugal”: [acu729640]: Desconto de 100€ na primeira compra. [acu729640]: Extra 30% de desconto em qualquer item. [acu729640]: Presente grátis para novos usuários da Temu. [acu729640]: AtĂ© 70% de desconto em qualquer item no aplicativo Temu. [acu729640]: Presente grátis com frete grátis em “Portugal”. PrĂłs e Contras de Usar o CĂłdigo de Cupom Temu 100€ Off Aqui estĂŁo alguns Temu coupon “Portugal” 100€ off code e Temu free coupon code “Portugal” 100 off: PrĂłs: Oferece economia instantânea de 100€. Válido para novos e existentes usuários. Frete grátis incluĂdo. Sem requisitos de compra mĂnima. Expira apenas quando utilizado. Contras: DisponĂvel apenas para compras na Temu. Necessário inserir o cĂłdigo manualmente. Válido apenas para usuários em Portugal. Termos e Condições do Cupom Temu 100€ Off em 2024 Alguns termos e condições para o uso do Temu coupon code 100€ off free shipping “Portugal” e “Temu coupon code 100€ off reddit” incluem: Sem prazo de validade, use a qualquer momento. Válido para novos e existentes usuários em “Portugal”. Nenhum requisito de compra mĂnima. Cupom se aplica apenas atravĂ©s do aplicativo Temu. Combina-se com outras promoções existentes. Nota Final Resumindo, o Temu coupon code 100€ off Ă© uma excelente oportunidade para economizar em suas compras favoritas. NĂŁo perca a chance de experimentar essas ofertas exclusivas. Com o Temu 100€ off coupon, suas compras na Temu serĂŁo nĂŁo apenas mais econĂ´mica, mas tambĂ©m mais prazerosas. Experimente agora e desfrute das economias! FAQ do Cupom Temu 100€ Off O que Ă© o Temu coupon code 100€ off? É um cĂłdigo promocional que oferece um desconto de 100€ em suas compras na Temu, disponĂvel para novos e existentes usuários em Portugal. Como posso usar o cĂłdigo [acu729640]? Basta inserir o cĂłdigo no checkout do aplicativo Temu para obter o desconto aplicado instantaneamente. O Temu coupon code 100€ off Ă© válido para todos os produtos? Sim, o cupom pode ser aplicado na maioria dos produtos, mas algumas restrições podem se aplicar a itens especĂficos. Posso usar o cĂłdigo Temu 100€ off mais de uma vez? Dependendo da promoção ativa, alguns cĂłdigos podem ser utilizados para usos mĂşltiplos, conforme mencionado em nosso site. O que acontece se eu esquecer de aplicar o cĂłdigo de cupom na compra? O desconto nĂŁo será aplicado apĂłs a finalização da compra. Certifique-se de inserir o cĂłdigo antes de concluir o pagamento.
Last updated: 2024-10-26
To search for an exact phrase, put it in quotes. Example: "getting started docs"
To exclude a word or phrase, put a dash in front of it. Example: docs -help
To search on specific fields, use these field names instead of a general text search. You can group with AND or OR.