Write Data to Siemens (1500) PLC

Rfolkes

Member
Join Date
Nov 2023
Location
Texas
Posts
2
Looking for options to write data to Siemens PLC.

Looking for something closest to way we were doing it with AB PLC and excel sheet.

Old way.

Excel sheet with Macros that would use RS Linx to connect to PLC and directly write values from Excel to the PLC arrays.

Arrays of configuration data for example
Input[x].EU
Input[x].RawMin
Input[x].RawMax
Input[x].EUmin
Input[x].EUmax

+++ a lot more

x could be in range from 1-2000

Data in excel sheet is (col names --- Array, Rawmin, Rawmax, EUmin, EUMax) Each row is a different array ID (x) in this example above)


For Siemens I don't see anyway to directly write via macro from excel sheet to Siemens 1500 (redundancy)

Looking at Kepware but from what I can tell only way to do that would be to build the tags in Kepware (PLC tags and Excel tags) then script the excel tags to watch for change and update PLC tags when Excel tags change... Problem with that is that most of the data is static and we don't want something constantly monitoring. But we want to be able to say Update array [56] - [125] and it updates the values in the PLC with the values from the excel sheet from those rows.
 
How does the on-demand update command/trigger work in the eXcel/A-B solution with which you are familiar?

If you are into custom solutions, this could be fairly straightforward with Python, or something like AdvancedHMI; you would probably spend more time on the command/trigger than the code that actually moves the data.
 
As a Siemens guy, I have to say that the way RSLinx just magically poofs data into excel (DDE topics?) is pretty spiffy. I give AB a lot of deserved ****, but there are a couple features they have like that where they implemented in a very simple way, something powerful enough that it's a big improvement over not being able to do it, but still simple enough that the avg controls engineer can use it.

Whereas, Siemens tends to kick things up a notch and say "ok fine, don't like our way? here's the API, go program it yourself in C#". Way more powerful, but much higher bar to be able to use the features. It's almost feels like they're trying to take their ball and go home, but they got home and their mom told them they need to share, so FINE I WILL THEN, HAH SO THERE. In reality, they're just aiming for a whole different set of users with different expectations, but dang.

Couple things come to mind that might not be too bad:
1) most 1500s can be OPC UA servers, this app example shows how to link it to excel
https://support.industry.siemens.com/cs/us/en/view/109748892

2) most 1500s can read/write data to the memory cards. I think you can activate the web page, and drop a CSV file into an appropriate folder and read it in. They literally have recipe commands to save or restore structures to/from the memory card. They also as of several years ago can just do raw ascii reads/writes, so if your data doesn't happen to fit the very specific recipe format Siemens wants, you can read it in and parse it yourself.

3) I'm pretty sure if the data is all one DB, you could copy paste from excel straight into Portal, but not sure if you're trying to keep Portal out of the loop or not.
 
Last edited:
Adding to the comments from @MK42: more recent firmaware for the 1500s also includes and OPC client and supports OPC "methods" which are a bit like a stored proceedure. (I haven't tried it yet but feel it coming very soon).

1500s also support MQTT. I've only tried is a publisher but I guess it will subscibe too if that could be an option?
 
mk42's link to an example with OPC UA Server on the PLC is the most closely similar to the RSLinx DDE method.
It is also the most future-safe.
It costs a license for the OPC UA Server on the CPU, but it is much less expensive than an RSLinx license.
 
In the Excel Allen Bradley solution. It is using RSLinx DDE to push data to the tags.
For example Analog_Input [PLC UDT]
Global tags = Analog_Input Array Size 2000
Excel table with entry for Tag base "Analog_Input"
Each line = 1 UDT array Data
Each line has Array ID col
Rest of Columns have header with tag Name (.EU, .RawMin, .RawMax...)

You set cells = Start Row and # of rows to transfer and that will transfer x rows starting with row y. So you can only update Analog_input[543] --> Analog_Input[633] if you wanted to.


On modbus ---> I don't think this is an option for us.
 

Similar Topics

I need to use the job mailbox area pointer to write a data record to the HMI, using job 70. The concept is to scan a label with a hand scanner...
Replies
0
Views
4,129
Thank you for any and all responses/help. I have an RSLogix 5000 v20 and a Cognex In-Sight v5.9 spreadsheet (8502P). I can not figure out how to...
Replies
0
Views
132
Dear colleagues, I am reaching out for assistance with an issue I am having. I have a code that can successfully insert data from FactoryTalk...
Replies
6
Views
1,054
Greetings. I have a 1769-L30ER that runs a new piece of equipment my company bought. I would like to read from and write to some tags on this PLC...
Replies
7
Views
1,431
Hello. I have been using CODESYS for years and had taken for granted that the PLC part was very similar to TwinCAT. but just found one issue that...
Replies
1
Views
1,969
Back
Top Bottom