12 posts in this topic

I wish Sysmac Studio would get things right once and for all

ARRAY limitations:

Prehistoric (Sysmac Studio):
abVarArray : ARRAY[1..10] OF BYTE
------------------------------------------------------
Normal (All Brands):
CONSTANT VAR
         c_MAX_NUM : INT := 5;
END_VAR;
abVarArray : ARRAY[1..c_MAX_NUM] OF BYTE

- If is created an Array of FB, the input assistant doen't show the inputs and outputs of this FB when you write "."

afbVarModule : ARRRAY[1..10] OF FB_Example

fbVarModule : FB_Example

afbVarModule[3]. (The assistant NOT shows the interface variables of FB)

fbVarModule. (The assistant shows the interface variables of FB)

INPUT/OUTPUT FB/Functions limitations:

- An input of a Function Block is not allowed to be a Function Block data type, of another for example. Incomprehensible

- An RERTUN of a Function Block is not allowed to be a Function Block data type, of another for example, and not allowed use Structure Data Type. Incomprehensible

- It is not allowed to use the type of variable ANY (or similar) to be able to make unique functions, and within them, depending on the type of variable (TYPEOF), one thing or another can be done.

STRUCT/ DATATYPE limitations:

- In a Struct data type it is not allowed to put TON, TOF, R_TRIG or F_TRIG or any other type of FB.

- An UNION Data type use a lot of Memory, the variable isn't superposed, the Sysmac creates diferents allocations for each member of UNION Type. Absurd.

- In Datatype section, inside to some Namespace, in enumerations... If two members of differents Types of Enumeration have the same name, the Sysmac shows a compilation error. Absurd. Sysmac studio is not able to correctly route the elements of the program

INSTRUCTIONS/CODE limitations

- There is no possible way to identify the MAC (or serial number, some unique number) of the PLC itself and in the User Program and store it in a Local/Global variable.

- The instruction SEL() can't be used in the IF condition, for example: IF SEL(i_xConfigUseVar1, xVar2, xVar1) THEN...... (TThis do a compilation error, another absurd thing, i create a SEL function in a library for each type (because the ANY type is not allowed) := IF SEL_x(SEL(i_xConfigUseVar1, xVar2, xVar1) THEN [AND this.... WORK]

- And MORE MORE MORE MORE things [AH, NOT ALLOWED THE USE OF POINTERS]

NEEDS TO IMPROVE A LOT

Don't tell me "This isn't in the IEC standard" please.. refrain from talking nonsense

Share this post


Link to post
Share on other sites

I am not sure what your approach to solving problems is. As for me, when I have this many issues, I do one of two things.

1. Switch my PLC platform.

2. Change my job.

But that's just me. Helps keep my blood pressure in check and most importantly, my co-workers will never, ever, ever, ever, have to worry about me one day walking in to work locked and loaded because I couldn't move a DINT to a FLOAT register. In Swahili. But that was in 1990. They may have that technology now.

Cheers!

Edited by skyfox
1 person likes this

Share this post


Link to post
Share on other sites
47 minutes ago, skyfox said:

I am not sure what your approach to solving problems is. As for me, when I have this many issues, I do one of two things.

1. Switch my PLC platform.

2. Change my job.

But that's just me. Helps keep my blood pressure in check.

Cheers!

@skyfox, sorry i'm trying to show some points where the sysmac studio environment could be improved. If you have been lucky (and capable) of being able to test environments such as TIA Portal or environments based on Codesys where you have been able to express your creativity when programming, you will know what I am talking about.

For example, the motion environment in sysmac studio is so good, very friendly and powerful.

The tools that sysmac studio offers now at this time, harm the performance of the PLCs, due to the fact that it is necessary to do an OVERtreatment of the data, in addition.  If you are not able to see this, you should change your job. I am being a constructive critic, I am not discrediting the environment. Thanks for the comment.

Edited by icanet
Grammatical errors

Share this post


Link to post
Share on other sites
1 hour ago, icanet said:

@skyfox, sorry i'm to show some points where the sysmac studio environment could be improved. If you have been lucky (and capable) of being able to test environments such as TIA Portal or environments based on Codesys where you have been able to express your creativity when programming, you will know what I am talking about.

For example, the motion environment in sysmac studio is so good, very friendly and powerful.

The tools that sysmac studio offers now at this time, harm the performance of the PLCs, due to the fact that it is necessary to do an OVERtreatment of the data, in addition.  If you are not able to see this, you should change your job. I am being a constructive critic, I am not discrediting the environment. Thanks for the comment.

I am sorry for misinterpreting your post. As you pointed out, I have failed miserably. Sincere apologies. What the HEX. I will take your advise and go back to programming a DL-06.

Cheers!!!

Edited by skyfox

Share this post


Link to post
Share on other sites
30 minutes ago, skyfox said:

I am sorry for interpreting your post incorrectly. As you pointed out, I have failed miserably. Sincere apologies. What the HEX. I will take your advise and go back to programming a DL-06.

Cheers!!!

Please, abstain from being ironic. I know that the Sysmac Studio environment is still young and the developers continue to work on their development; I only bring comments from certain limitations that currently presents and that can be used to try to improve the environment.

Your first comment has been an ironic attack where you do not bring anything interesting, we should try be professionals, thank you. Let's leave the misunderstanding at this point. And sincerely, thanks for reading my point of view, I know that after reading it, you will have realized that everything is true.

Share this post


Link to post
Share on other sites
28 minutes ago, icanet said:

Please, abstain from being ironic. I know that the Sysmac Studio environment is still young and the developers continue to work on their development; I only bring comments from certain limitations that currently presents and that can be used to try to improve the environment.

Your first comment has been an ironic attack where you do not bring anything interesting, we should try be professionals, thank you. Let's leave the misunderstanding at this point. And sincerely, thanks for reading my point of view, I know that after reading it, you will have realized that everything is true.

Like i said, If i don't like what the yellow car is offering at this time, I will buy the RED one that has everything I want NOW.

Cheers!

 

Edited by skyfox

Share this post


Link to post
Share on other sites
27 minutes ago, skyfox said:

Like i said, If i don't like what the yellow car is offering at this time, I will buy the RED one that has everything I want NOW.

Cheers!

 

Really George? (What else?)

I know it...... OK, for various reasons we are being forced to use the Sysmac Studio environment. I'm solving the previous disadvantages that I mentioned doing some programming tricks. But is better that the environment offers better solutions, really? Nothing more to add.

Share this post


Link to post
Share on other sites
52 minutes ago, icanet said:

Really George? (What else?)

I know it...... OK, for various reasons we are being forced to use the Sysmac Studio environment. I'm solving the previous disadvantages that I mentioned doing some programming tricks. But is better that the environment offers better solutions, really? Nothing more to add.

But this is a forum to get help with WHAT WE GOT NOW. No? Oh and by the way, it is Mr. George. All kidding aside, have you looked in to the possibility of a FUNCTION block as the final product that you want with your STRUCTURE?

Thank you kindly.

Edited by skyfox

Share this post


Link to post
Share on other sites
5 hours ago, icanet said:

Please, abstain from being ironic

Irony is the perfect complement to pedantry.  Sarcasm can be appropriate, too.

Edited by pturmel

Share this post


Link to post
Share on other sites
3 hours ago, pturmel said:

Irony is the perfect complement to pedantry.  Sarcasm can be appropriate, too.

3 hours ago, pturmel said:

Irony is the perfect complement to pedantry.  Sarcasm can be appropriate, too.

8 hours ago, skyfox said:

But this is a forum to get help with WHAT WE GOT NOW. No? Oh and by the way, it is Mr. George. All kidding aside, have you looked in to the possibility of a FUNCTION block as the final product that you want with your STRUCTURE?

Thank you kindly.

8 hours ago, skyfox said:

But this is forum to get help with WHAT WE GOT NOW. No? Oh and by the way, it is Mr. George. All kidding aside, have you looked in to the possibility of a FUNCTION block as the final product that you want with your STRUCTURE?

Thank you kindly.

For example, I create Struct with the members (In, Outs, ans Auxiliar variables) of TON, TOF, TP, R_TRIG, F_TRIG, ans later i make a FUNCTIONS with behaviour of each one, inserting an IO variable (withous IN_OUTs) (for not consume memory). In this way I can introduce this Struct in a parent STRUCT and later in the programmong window I call the funtction with this STRUCT.Struct. a FUNCTION(STRUCT.Struct). 

Doing this I lost the input assistant, but is the unique solution at this moment that i have applied. 

Using this system, if you want, you can apply for other personal theoreticals FB (Func only with Struct, i name it FDB (Function with DB)).

Later, if you want to do METHODS of this FDB, you can create a Func with IN_OUT associating the parent DB (by the FDB), and put a Namespace with the name of the FDB in properties of this METH \nsFDB_xxx\METH_xxx

I'm applying this since few days ago, is the unique solution to not harm the memory of the PLC.

Postdata: Really important point, array with constant Limit, i think that from developers this is really easy to apply on the enviorenment, and this allows have a better control in the programming code. Is a powerful tool, i hope this in the next updates, please.

 

Share this post


Link to post
Share on other sites
3 hours ago, pturmel said:

Irony is the perfect complement to pedantry.  Sarcasm can be appropriate, too.

Yes man, you're right, good contribution!

Share this post


Link to post
Share on other sites

Making wishes is fine. Listing them can be useful feedback if people involved come to read such posts. At any rate that is something that is not going to be resolved quickly. It may happen but will take time 

On the other hand there are quite few topics where someone is looking for specific instruction or feature. Well duh ... If we could just talk to PLC and tell it what need to be done, there would be no need to learn programming. Until that day, we may have to keep finding solutions around the limits of used platform.

Frankly i see no point in some of the things said. Pointers for example may be not available on purpose. Considering what the PLCs are used for and how poor general programming skills of average automation guy are, i am ok with that...

How much memory is used internally by some construct like union etc. is also pointless. Short on memory - restructure your code or use bigger CPU. Programmer may not have choice in instruction set or memory size but has choice in what programming construct is used or not. Don't like it, work around it. And you know the saying: 

If you cant beat them, join them. 

 

what i like to do is make my own library that manipulates things the way i like. this also allows me to wrap things around and conceal differences when working with different platforms. and it also helps reduce repetition of code. 

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now