Olá a todos!
É com imenso prazer que anuncio a versão 0.7.5 do PascalSCADA. Ela é uma versão de correções de bugs em relação a versão anterior.
Vale informar que esta versão será a última que mantem o mecanismo de leitura por scan atual. Ou seja, a próxima versão terá alterações neste mecanismo.
Elá está disponível tanto no SourceForge quanto nos repositórios do OPM, conforme anunciado anteriormente.
Para fazer download da versão completa (com exemplos e documentação das classes) do SourceForge clique aqui.
Para atualizar sua cópia do PascalSCADA usando o OPM, siga as instruções que estão aqui.
Os requisitos mínimos para rodar rodar esta versão do PascalSCADA são FPC 3.0.4 e Lazarus 1.8.0.
Informações gerais…
Como informado no titulo do post, tenho que começar explicando o porque da demora em responder os posts da página. Faz pouco mais de um ano quando migrei a página dos servidores do Sourceforge para um servidor particular. Após finalizar a migração, fiz uma verificação minuciosa nas configurações, principalmente nas notificações via e-mail. Instalei um plugin para enviar e-mails via GMail, fiz testes de envio de mensagem e estava tudo OK.
Porem, descobri que uma pequena parte das mensagens da página eram de fato enviadas. A grande maioria das mensagens não era enviada. Notificações de moderação jamais sairam do servidor e a página ficou com aspecto de abandonada.
Então nesta semana, revisei as configurações a estou sendo notificado quando comentários são postados. Pedi para pessoas aleatórias se registrarem e enviar algum tipo de comentário, e fui notificado de todos.
Peço desculpas a todos que acessam e comentaram na página e que ficaram sem resposta.
You might want to check out Pasettimino, a very lite native Pascal ethernet communication library for S7 Siemens Simatic PLC. S7 200/300/400/400H/1200/1500 and LOGO 0BA7 PLC families are supported. It has some unique features like getting status of all PLC leds (even on redundant CPU pairs) and getting status of power supply memory backup batteries. These might be important info on some SCADA systems, so you might want to explore the code and integrate something like that in PascalSCADA.
btw. I can’t wait to see your tag managment evolve. That would allow PascalSCADA use in big projects.
Hi avra!
I’m looking for that right now. I see it in a previous stage some time ago. But part of feature set of Pasettimino is already present on PascalSCADA, on ISOTCP driver, like:
* communicate with these PLCs (tested by me):
## 200 (using CP 243)
## 300-ET-200S (I have plants with PascalSCADA and this PLC)
## 400 (I have plants with PascalSCADA and this PLC)
## 1200 (I have plants with PascalSCADA and this PLC, DB’s must have Optimized access disabled)
## 1500-ET200SP (I have plants with PascalSCADA and ET-200SP, DB’s must have Optimized access disabled)
## LOGO 0BA7
* Missing features, that I’m studying Snap7 for include in the future, and now I have one more source to study:
## 1 – Connect in a PLC protected by password (read/write levels)
## 2 – Read battery status
## 3 – get/set PLC clock
## 4 – Read CPU state (run/stop, I don’t want to switch the CPU state)
## 5 – Read/write symbolic tags (Pasettimino can do that?)
## 6 – S7-400H (I never tested, I don’t have an opportunity.
You have other features that I consider important, like reading CPU product number and firmware revision. Andreas Frieß send me an e-mail today, talking about your project. Since this moment, I’m thinking about how to fit these features on current PascalSCADA ISOTCP implementation.
Ps: Your implementation is very clean and easy to read. Congratulations!!
As for missing features that you might include in the future:
## 1 – Connect in a PLC protected by password
>> I did not bother with this yet. Maybe in the future.
## 2 – Read battery status
>> Take a look at Pasettimino TS7ExtendedClient.GetPlcBatteryStatus
## 3 – get/set PLC clock
>> TS7ExtendedClient.GetPlcTime and TS7ExtendedClient.SetPlcTime
## 4 – Read CPU state (run/stop, I don’t want to switch the CPU state)
>> Snap7 and Settimino do not show correct running status on redundant S7-400H PLCs. I have fixed it in Pasettimino. More at https://sourceforge.net/p/snap7/discussion/bugfix/thread/ed0da378.
## 5 – Read/write symbolic tags (Pasettimino can do that?)
>> Symbol table is not stored in old S7 PLCs so can not be retreived from PLC. I have not checked that for newer PLCs. Pasettimino can only read the list of all existing PLC blocks (without symbol names) with TS7ExtendedClient.GetPlcAllBlocksList.
## 6 – S7-400H (I never tested, I don’t have an opportunity.
>> I have access to at least 20 (S7-414H and S7-417H). If you need to test something I will see what I can do.
As for “You have other features that I consider important, like
reading CPU product number and firmware revision”:
>> Search the net for Siemens document “s7sfc_en-EN.pdf” and look into chapter 34 – System Status Lists (SSL). You will find there a complete SSL list. Any missing SSL would be easy to implement. Just use TS7ExtendedClient.ReadSZL method and analyze the received buffer according to documentation. You will find that many Pasettimino features are internally implemented using that ReadSZL method (SZL is german for SSL, so they are the same).
Hi,
I would like to create a master in Modbus TCPIP.
Is PascalScada the right library to do it?
If yes, can I found a small example in Lazarus under Linux to do it.
Best regards Malek
Yes. PascalSCADA can act as master (modbus RTU)/cliente (Modbus TCP)
Take a look at:
https://sourceforge.net/p/pascalscada/code/HEAD/tree/trunk/examples/
Bom dia, Fábio existe a possibilidade de você me passa um número de contato? Estou diante de uma situação complicada e aparentemente esse erro esta relacionado ao pascalscada, queria debater contigo tal situação para juntos encontramos uma solução
Me adicione no Telegram
@Fabio_PascalSCADA
Bom dia Fábio.
Estou começando a trabalhar em uma aplicação e gostaria de utilizar o PascalSCADA, teria algum manual ou coisa parecida para começar a estudar?
Teria um contato para eventuais dúvidas?
Fabio, I have a problem with PascalScada (ver. 0.75) and Lazarus (ver. 2.02 r60954). I have also Windows 10 x64 Enterprise.
If I try build a project I have more than 100 warnings and notes.
Most of them are: “duplicate file”. What can I do to avoid this warnings?
Best regards,
Mateusz
I’m searching for that but without time to fix that. Maybe it’s my fault on the setup of packages. I’ll keep you up to date.
But I can’t understand, this fault doesn’t allow you to run PascalSCADA applications? Do you have another error then this?
I can run application and haven’t another errors.
Dear Fabio,
I am using pascal scada as Modbus TCP Client/Master and works really well.
Can pascal scada be used as IEC61850 client , to retrieve data from IED electrical devices (acting as IEC 61850 servers , listening at port 102) ??
Yes, is possible, but someone have to implement this protocol (I’m very busy on last months). Do you have the documentation about this protocol?
Documentation is easy to be found , the difficult task is to find IED devices for testing….
Documentation:
61850 client example: https://github.com/mz-automation/libiec61850/blob/v1.5/examples/iec61850_client_example1/client_example1.c
(using the libiec61850 library).
Documentation About IEC 61850 protocol as implemented by ABB on REF615 protection relay device:
https://library.e.abb.com/public/309b93d59615800ec1257b130056a429/REF615_IEC103point_756712_ENa.pdf
https://library.e.abb.com/public/012bb189cb694eaf96e77906eae226d6/REF615_modbuspoint_756581_ENl.pdf
Please support Delphi 10.3.X
Maybe, if some Delphi user does that. I’ll not. Delphi users gave no feedback to the project. I cut off the Delphi support at least 3 years ago, and only in this year, I got some feedback. This support will depend if some Delphi user has time to port PascalSCADA again to Delphi… Sorry.
Fabio, poderia informar sobre a alteração no mecanismo de scan para as novas versões?
Atenciosamente,
Dan
Hoje para o valor se atualizado no tag, tem que haver uma thread buscando o valor da imagem do driver de protocolo e jogando este valor em cada tag. No futuro, quero que cada tag receba um ponteiro que apontará para onde o seu valor do tag está na imagem de leitura do protocolo e com uma operação atomica (InterlockedExchange) a troca da imagem com o tag é feita. Porem ainda estou vendo como fazer isto, pois ainda preciso de algo verificando ciclicamente os tags, função que é feita hoje por uma thread…
Dear Fabio, i am trying to read zome modbus registers that are holding text. I have used cstring tags to read those text values from slave, text is read from register by pascalscada, but it comes to my screen reversed. For example, if register 101 on slave holds text “abab”, the text received / printed in pascal scada cstring tag is “baba”. Any way to natively read the text correctly (without text manipulation techniques) ?
Are you using TPLCString Tag? I dont remember if has a SwapBytes property like TPLCTagNumber
Hello, yes i do use TPLCString Tag, but this tag has not a “SwapBytes” property. If SwapBytes was available, may be this could be a solution to my case. Can this property be added ?
Yes, it can be added, but I’m without time to do that soon.