Have I told you guys how much I hate programming using Step7 today?

Peter Nachtwey said:
All I want to do, for now, is to read 32 Reals and write 32 Reals using SFC14 and SFC15.

Then post a Help Request here and if you are lucky one of the S7 Gurus (S7 Guy, LD, Krk to name but a few!) will roll the code for you :)

I would offer help but Step7 is not my favourite platform :)

I guess the more you use somthing the more familiar it is and the easier the software is to code...

Did i mention i hate Mitsubishi ?
 
Step7 is not very intuitive. It seems like a very good program for what people would expect in 1995, but is not up to par with 2008.
 
curlyandshemp said:
Step7 is not very intuitive. It seems like a very good program for what people would expect in 1995, but is not up to par with 2008.

Cannot, for the heck of me, fathom out this 'intuitive' rubbish. I feel workinbg this side of the water is like working in the UK of the 80's. Land that time forgot.

I would love to work with Step 7 again, for me it is intuitive and by that 'I am used to it'.

Instead I have to use this Control Logix rubbish that drives me to dispair at times.

Today I had to work on a system, apparently there is a change in the program... You cannot go on-line???? WHAT!!! You cannot compare to see what the differeces are !!!!!! You MUST UPLOAD, jesus wept.... Uploading... FATAL ERROR.... That's it then SCREWED.

Not the first time this has happened to me either in one long year!!!

I'm slowly growing to hate this AB rubbish....








Or is it I am not used to it.
 
I don't think I've ever seen an intuitive piece of software, ever. SQL? Nope. C++? Nope. VB? Nope. I mean, if if they were intuitive, then the guy bagging groceries at the local market would be doing it.

The fact is, every programming package I've ever leaned takes a lot of hard work to get used to it. I can crank out code like a mad man in S7, but then again I've been doing S5 and S7 for a long time. If anyone takes the time to learn it well, they'll be happy with it just like they would with anything else.
 
S7Guy said:
I don't think I've ever seen an intuitive piece of software, ever. SQL? Nope. C++? Nope. VB? Nope.
I am not talking about the language, I am talking about the IDE or integrated development environment. I do most of my programming in C and Mathcad. I use Microsoft's Visual C to do most of the C work. I have a TI ( Texas Instruments ) C compiler and IDE for programming DSPs. It isn't near as nice as Microsoft's IDE or even Apples Xtools. The TI development tools are lame in comparison. The difference is not the C that I use to program. Unlike PLCs I can copy my files from MS development system to the TI development system and the code complies and runs. The C is the same. The development tools and environment tools are different.

What makes VB and C# tricky is the windows programming. If you just did console apps they would be easy. It is the applications, not the language that is difficult. C has only about 29 reserved key words and symbols. That is many fewer than STL, LAD or SCL. So tell me why is C difficult? C isn't difficult to learn but it gets used for programming difficult applications like writing PLC firmware, motion controllers and operating systems with C.

I mean, if if they were intuitive, then the guy bagging groceries at the local market would be doing it.
No, you are talking about their lack of application knowledge, math and physics. Not the IDE. An intuitive IDE would still be a struggle for the the guy bagging groceries after the got past the "hello world" example.
Entering code does not make one a programmer.

The fact is, every programming package I've ever leaned takes a lot of hard work to get used to it.
Try the Microsoft Visual Studio or Xtools. These are very easy to learn but then they don't have to configure Profibus DP I/O.

I can crank out code like a mad man in S7, but then again I've been doing S5 and S7 for a long time.
OK, but cranking out code is the easy part. It is getting around the problems that takes all the time. The IDE should help you with meaningful error messages and wizards to help one through procedures. Would you know about all the different places to click and make entries that I listed in that procedure above? When the USB-MPI adapter says it is damaged, is there a simple trick you use like a ping that lets you know that the hardware is working and the problem is really someplace else? I had a pretty good idea that my USB-MPI adapter was OK and the Step7 was lying to me. Perhaps they want me do get an new adapter when it really isn't necessary. The Step7 didn't tell me exactly what was wrong so I just reinstalled the USB-MPI adapter drivers and went though the whole configuration procedure which took time It could be that a simple parameter needed to be changed but the Step7 didn't tell me that. When I finally downloaded my code, the S7 stopped without providing an error code. I have no clue as to what caused the S7 to stop except that it was my code. When the PLC stops without providing any error codes what do you do? One can remove code until the offending code is removed. I can do that because I have only a few rungs. What about the rest of you with your much bigger projects? Removing code just to find an offending rung that cause the crash is time consuming. Why didn't the compiler say there was an error before the code was downloaded? Couldn't the PLC at lest indicate the last rung or network that was executed before a crash? Our product will log the steps and transitions executed and what caused the fault. That saves a lot of time because half of debugging is finding the problem. Why did my program crash in the first place? I think I didn't get my ANY pointer right in the SFC14 and SFC15. Are these ANY pointers allowed to point anywhere and cause crashes? It looks like it. Why do we need ANY pointers in the first place? No one else needs them. The IEC spec doesn't even have pointers. They are just another PLC thing the programmer must deal with instead of focusing on the application problem.

If anyone takes the time to learn it well, they'll be happy with it just like they would with anything else.
And there is the problem. I don't have the time when customers are waiting for the answers. We don't have the time to learn any PLC very well because our customers use so many different kinds. We have an electronic zoo with PLCs and HMIs instead of animals. From our vantage point we can see that some PLCs and HMIs are easier to learn and support than others.

It would be so easy to say that all you need to do is set the Profibus DP node address in our product. Call the PLC tech support for information on how to configure the Profibus and how to write a program that transfers a 1000 point cam table through a few Profibus DP registers. If we did that then many of the customers would give up in frustration.

You imply that all IDEs are the same. That just isn't so. We all will have our preferences and IDEs have different strengths an weaknesses.
 
Have you tried toggling with control-q in the editor to switch between symbols and absolute?



Thanks S7Guy, I'd never come across that one before. It's exactly what I need for a job I'm doing at present integrating three previously autarch pumps into an existing PLC (mainly so that the data is available on the HMI). All I had to go on was an upload of the program out of the existing (separate) PLC and I arranged things so that all the markers for pump 1 were in M1xx, pump 2 in M2xx and pump 3 in M3xx. Although I usually work exclusively symbolic, in this case it's a heck of a lot quicker to modify the absolute addresses and CTRL-Q is quicker and easier than clicking through the menus!
 
When I finally downloaded my code, the S7 stopped without providing an error code. I have no clue as to what caused the S7 to stop except that it was my code. When the PLC stops without providing any error codes what do you do? One can remove code until the offending code is removed. I can do that because I have only a few rungs. What about the rest of you with your much bigger projects? Removing code just to find an offending rung that cause the crash is time consuming. Why didn't the compiler say there was an error before the code was downloaded? Couldn't the PLC at lest indicate the last rung or network that was executed before a crash



Actually, all the information you need is available from the diagnostic buffer. There you will find exactly what caused the CPU to go into STOP in the first place and when it's in STOP (but only then) you also have the option to look in the local stacks and you can then access the precise instruction in the block that caused the fault.

You can access the diagnostic buffer from Simatic Manager using PLC -> Diagnostic/Setting -> Module Information, or, alternatively, directly with CTRL-D.
 
There are a few steps missing as I cannot follow it. Get stuck at step 2....:D

So this is how I would do it.

1: Create project
2: Insert PLC-station (I take it you have a S7-313C 2DP, so select S7-300 station)
3: In the S7-300 station double click on Hardware
4: Once HWConfig is open, right pane, navigate to the S7-300, then rack and Double click on rail.
5: On right pane navigate to S7-300 CPU's, select S7-313C 2DP, drag it to Slot nr 2.
6: Upon dragging the CPU here a pop-up window appears asking for the specifics of your Profibus DP network. Add new network with the Add button, configure it as you would in NetPro. Once configured, select that network, select PLC node adress and click ok.
7: I'm assuming the GSD is installed, if not install it now.
8: Right pane > Profibus DP > Additional Field Devices > Motion-Controller > Select RMC150 and drag it to the newly created Profibus DP master system, shown in the upper window.
9: Pop-up window appears asking for Node adress, select 5, I think you wanted and click ok
10: Right pane double click on I/O Mode (32 regs)
11: In the bottom window you should now see the I/O Mode (32 regs) and their adress, being 256-383. Double click that line and change the adress to your liking. Taking into account the CPU range and the already used adresses. Click ok
12: Save and Compile
13: Download

Your step 12 is something I have never ever had to do. Also adding a Profibus DP station is usually done inside the HWconfig, never had to do it in NetPro myself

Are you willing to spend 4 more hours to give this method a try? 3:45 hrs to get the USB-MPI working and then 15 mins for Hardware....
I do not have the hardware so I cannot test if this works.....o_O
 
In response to a long criticism against STEP7 in particular and praise of PCs and the C language:
If you read your own text you can see that you actually argue that is is the interface to the real world that is the tricky bit.
Profibus DP is an open standard to tie different vendors products together. I think that it works pretty well, but there is a certain degree of complexity that stems from the flexibility and open-ness. Despite this complexity it is lots easier than connecting to the "real world" from C.

Peter Nachtwey said:
When the USB-MPI adapter says it is damaged, [..]I had a pretty good idea that my USB-MPI adapter was OK and the Step7 was lying to me.
Yes. In the english language STEP7, there are lots and lots of odd dialog boxes and error messages. The above is from a bad translation of "Verbindung ist gestört" (= "Connection is lost").
I prefer to read the manuals and online help in german, because the translation is clearly not done by technically capable people.

Peter Nachtwey said:
Removing code just to find an offending rung that cause the crash is time consuming. Why didn't the compiler say there was an error before the code was downloaded? [*1] Couldn't the PLC at lest indicate the last rung or network that was executed before a crash? [*2] Our product will log the steps and transitions executed and what caused the fault [*3]That saves a lot of time because half of debugging is finding the problem. Why did my program crash in the first place? [*4]I think I didn't get my ANY pointer right in the SFC14 and SFC15. Are these ANY pointers allowed to point anywhere and cause crashes? [*5]
*1: S7 STL/FBD/LAD doesnt "compile" in the sense you do with C on a PC. SCL is more a "compiler" in this sense. In SCL there are more checks done, for example also if referenced addresses exist.
*2: S7 also does that. Check the "Stacks"
*3: S7 do tell you that. Check the "diagnostic buffer".
*4: you decide yourself if the PLC shall crash or continue by adding error OBs to the program. Notice that it may be an idea to wait with adding error OBs until you have finished debugging your program. This because without the error-OBs the PLC will stop at the offending program location, making it easier to troubleshoot (see *2).
*5: Now-now, pointers in other languages can also make funny stuff.

Peter, with those comments from you I must honestly say that your knowledge of S7 is very superficial.
As the very minimum, you must get acquainted with the diagnostic buffer and the error OBs.
As for the ANY pointer, it is maybe a bit odd, but also very simple.
It simply consists of a starting address and a number of BYTEs.
P#M200.0 BYTE 20
P#DB10.DBX0.0 BYTE 40
P#DB12.DBX232.0 BYTE 60
 
Peter Nachtwey said:
I am not talking about the language, I am talking about the IDE or integrated development environment. I do most of my programming in C and Mathcad. I use Microsoft's Visual C to do most of the C work. I have a TI ( Texas Instruments ) C compiler and IDE for programming DSPs. It isn't near as nice as Microsoft's IDE or even Apples Xtools. The TI development tools are lame in comparison. The difference is not the C that I use to program. Unlike PLCs I can copy my files from MS development system to the TI development system and the code complies and runs. The C is the same. The development tools and environment tools are different.

I'm not talking about the language either. Code is code, logic is logic. The programming environments are different, but ultimately one has to come up with a logical sequence to perform a task.
My "supermarket bagger" comment was made in response to someone saying a software package wasn't intuitive. What I meant is that if it was intuitive, the bagger would be able to start it up, automatically go through some wizard that made an OB1, an FC, and a DB, and help him write logic. He wouldn't have the knowledge to write good code, but at least he could write code. But instead, even someone like yourself struggled. You don't have a problem with Microsofts IDE because you are used to it. But if I had to start using it tomorrow, it would be no more intuitive to me than the Simatic Hardware Configurator was for you yesterday.

A goood example would be AutoCad. Now, I consider myself a fairly bright guy, but last year I had to do a little bit of drawing with it, and let me tell you, it sucked. All I wanted to do was extend a couple of lines make a radius with the intersection, but I had to pour through help files and search help forums to do even this simple task. I don't blame AutoCad though.

So tell me why is C difficult?
I didn't say it was difficult. I don't think any programming language I've learned was difficult. Now that I've learned Python, C wouldn't be my first choice for a lot of apps, but it's still the programming problem that makes the task difficult, not the coding language.


Try the Microsoft Visual Studio or Xtools. These are very easy to learn but then they don't have to configure Profibus DP I/O.

That's subjective. If you took someone that had never seen either environment before, I don't think one would be easier than the other.


The IDE should help you with meaningful error messages and wizards to help one through procedures.

Siemens could be better at their messages. I was very regrettably using ProTool to change a screen recently, and had a question about configuring passwords. In the help, it said, paraphrasing, "Configure passwords as you are used to in ProTool". Thanks a lot.

Would you know about all the different places to click and make entries that I listed in that procedure above?
Yes. But I've used S7 since 1996, so it has become second nature.
When the USB-MPI adapter says it is damaged, is there a simple trick you use like a ping that lets you know that the hardware is working and the problem is really someplace else? I had a pretty good idea that my USB-MPI adapter was OK and the Step7 was lying to me. Perhaps they want me do get an new adapter when it really isn't necessary. The Step7 didn't tell me exactly what was wrong so I just reinstalled the USB-MPI adapter drivers and went though the whole configuration procedure which took time It could be that a simple parameter needed to be changed but the Step7 didn't tell me that.

There is sort of a ping function. From Simatic Manager, there is a "Display Accessible Nodes" function. If you can't see the PLC there, then you simply don't have a connection. From my experience, USB MPI adapters are not that reliable. The serial and pcmcia adapters always seem to connect, as does my new ethernet adapter. And if your PLC has an ethernet card, you don't need MPI at all anyway.

When I finally downloaded my code, the S7 stopped without providing an error code.
That's impossible. The disgnostic buffer will give you an error code and description, and lead you to the exact line of code that caused the problem.

I have no clue as to what caused the S7 to stop except that it was my code. When the PLC stops without providing any error codes what do you do? One can remove code until the offending code is removed. I can do that because I have only a few rungs. What about the rest of you with your much bigger projects?

In the diagnostic buffer screen, click on IStack. This probaly the most useful debigging tool in S7. I've never had to remove lines of code to troubleshoot code.

Why didn't the compiler say there was an error before the code was downloaded? Couldn't the PLC at lest indicate the last rung or network that was executed before a crash?

Sometimes it's hard to tell if what you are doing is always an error, just as it is in C. S7 will catch the obvious errors (mismatched jump markers, wrong variable names, etc), but other things may not show up until run time. Hell, Bill Gates has had billions of dollars to get Excel to work over the years, but it still locked up on me last night.

Are these ANY pointers allowed to point anywhere and cause crashes? It looks like it.

Well, yes, that what a pointer does. How could S7 possibly know in advance what you plan on doing with a pointer? For instance, a data block can be created dynamically at run time, but I still would need to create a pointer or address in my code in order to use it.



You imply that all IDEs are the same.

I didn’t imply that at all. When I was learning Python, I tried three different IDEs until I found one I liked. Some are more intuitive and useful that others for whatever reason.

In any event, that’s what forums like this are good for. Next time you get a red light and a stopped PLC, shoot a message over here and we’ll walk you through it. Or just give me a call.
 
Obviously familiarity and which platform you learn first has a bearing, but it is also obvious that some software and hardware is more obscure and inherrently difficult to use.

My first PLC platform was Mitsubishi. No problem - with the manual and the help I cranked out my first program in nothing flat, with only one call to support for scaling the onboard potentiometer.

Next came Automation Direct. No problem. With online help and excellent manuals I could crank out programs in nothing flat. My first call to support was about an arcane communications issue.

Next came Control Microsystems. Again, no problem, although I never did like the odd Modicon 984 scanning sequence.

Next came GE 90-30. Fairly intuitive, no real problems, and the manuals were not great but were good enough. I liked it.

Next came A-B and RS Logix 500. It took a while to figure out data files, but basically the manual and the software got me through with only a few calls to support. I did some cussing, but overall the complexity was compensated by the power of the programming and I rate it decent or better. My biggest gripe is the inability to download logic without downloading data files, but there are workarounds.

Next came Modicon. Some issues with scan, the way they handle math stinks, and manuals almost useless. Concept is lousy software. Got through it, but will never like it. Tech support lousy. Way low on my list.

Somewhere in there was Cutler Hammer - OK, not up to date, but manageable.

Finally I got forced into Siemens. Absolutely the worst of the bunch. Manuals are ****, way too many separate volumes needed, tech support from the factory was useless. (This was before our current distributor was around.) Everything was way to cumbersome, online help was marginal at best. They claim to have ldder logic, but they don't really mean it. HMI just as bad, tag references are complicated to access. Step 7 is an incredible memory hog and very slow. I always feel that they structured the software to encourage you to subcontract programming to them so they could have another revenue source. Clearly being the most expensive is not justified by ease of use. Nothing is simple! Siemens is absolutely the worst value in my book. It shouldn't be this hard.

Used Compact Logix and RSLogix 5000. Creating tag base fairly straitght forward but time consuming. Help function was good. Never cracked the manual open - didn't need it. Loved the user data type. Better than 500, and high on my list.

Had to use Modicon Unity and although it was better than Concept still not as good as most I use. (Still much better than Siemens.) Not a good value.

Siemens is the worst in my book.

Peter, I sympathize.
 
Last edited:
PeterW said:
Cannot, for the heck of me, fathom out this 'intuitive' rubbish. I feel workinbg this side of the water is like working in the UK of the 80's. Land that time forgot.

I would love to work with Step 7 again, for me it is intuitive and by that 'I am used to it'.

Instead I have to use this Control Logix rubbish that drives me to dispair at times.

Today I had to work on a system, apparently there is a change in the program... You cannot go on-line???? WHAT!!! You cannot compare to see what the differeces are !!!!!! You MUST UPLOAD, jesus wept.... Uploading... FATAL ERROR.... That's it then SCREWED.

Not the first time this has happened to me either in one long year!!!

I'm slowly growing to hate this AB rubbish....








Or is it I am not used to it.

Peterw i have read alot of your posts, and you always seem to put down something about North America (low panel standards, place that time forgot etc.) If this is such a horrible place to live, why are you here?????????
 
May be with translation the idea will be lost, but here in my country and in spanish when you see a software that was easy and due to change of version turn out to be complicated we say the software was "Siemenizado" or changed based on siemens way.
 

Similar Topics

Hey all, I am currently working on a depalletizer for a customer and we are doing a hoist upgrade. This is a SLC500 processor and the drives are...
Replies
6
Views
359
Luckily, it wasn't towards me. But it got me thinking. I am getting old. Correction, I am now old. I need to up my game. I'm thinking about...
Replies
10
Views
2,761
I had a project where I had spec'd a PanelView C300 (2711C-K3M) I got it working and it was functional, but I needed a few more options, and I...
Replies
37
Views
27,065
I've been in the business most of my adult life, and I think I've heard about all of them. The funny part is that when people say these things...
Replies
64
Views
17,227
Now that Kroy has closed it's factory, What are you using for shrink tube labels? Looking for the same durability as the Kroy labels had (ie. no...
Replies
3
Views
2,063
Back
Top Bottom