Hi everybody!
I’m glad to announce the PascalSCADA 0.7.5. It’s a bugfix release.
This version will be the last one that maintains the current tag scan mechanism. That is, the next version will have changes in this mechanism.
It’s available both in the SourceForge and in OPM repository, was announced previously.
To download the full package (with examples and class documentation) from Sourceforge click here.
To update your PascalSCADA copy using OPM, follow the instructions listed here.
The minimum requirements to use this PascalSCADA version is FPC 3.0.4 and Lazarus 1.8.0.
General information…
As informed in the post title, I have to start explaining why the delay replying the comments of the page. Over a year ago, I migrated the page from the Sourceforge server to a private server. After completing the migration, I made a check of the settings, especially in email notifications. I installed a plugin to send emails via Gmail, sent tests messages and everything was OK.
However, I discovered that a small portion of the messages on the page was sent. The majority of messages were not sent. Moderation notifications never left the server and the page looked abandoned.
So this week I reviewed the settings and I’m being notified when comments are posted. I asked random people to register and send some kind of comment, and I was notified of all.
I apologize to all who have accessed and commented on the page and who have not answered.
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.