Jump to content

Saragani

Administrators
  • Content Count

    950
  • Joined

  • Last visited

  • Days Won

    93

Everything posted by Saragani

  1. You can use the "Formula" feature. (Look it in the solution explorer). You can create a formula, and then use it in ladder (using the formula element) and pass the parameters. One note about the calculation: When you divide numbers, if both numbers are integer then the result would be integer (unless some other part in the formula forced the number to be converted to float). This means that 5 / 3 (or A /B, if both A and B are integers and have the values 5 and 3 accordingly) would result 1 and not 1.6666666666666 This is how other programming languages work, and people tend to hit that issue and tell that the formula doesn't work properly. As I said, there are cases when the division will be calculated as float division. If one or more of the numbers is a float then it will force it to be a float division. I think that if the result is also a float , meaning you define A / B where A and B are integers, but you also define that the result tag is of type of float (but don't take my word on this). An easy way to force float calculation is to write 5.0 instead of 5 (for example), or when you divide 2 integer parameters, then write: A * 1.0 / B This way you are forcing the division to be in float.
  2. Well, the M90-19-B1A should be recognized by both the communication driver and Remote Operator, and when I tool the string you posted, it didn't recognize it as a valid PLC string, but then I noticed that it contains a lot of invisible characters, so I'm not sure if its because the forum somehow added those extra characters.
  3. Can you are a small project that reproduces the problem?
  4. My windows version was updated and I now have windows 10 version 1903 I'm unable to reproduce the problem on my new windows. Can anyone verify if this problem is fixed on the new windows version?
  5. Can you contact support and explain the problem in details? (And supply a project if possible). Maybe we can reproduce the problem, and if it's on our side then we could fix it.
  6. Not if you want the action to perform only once per button press. Resetting the bit on release would keep the bit set for many cycles.
  7. Just another question. Is the communication problem a problem with the Modem, or with the PLC? If you say that you have communication problems after few weeks / months and the problem is in the PLC, then maybe this issue can be sorted if we find out why it happens.
  8. Follow the instructions at: msizap should solve the problem that "no version is installed"
  9. OK, I don't know what's half width characters, nor do I understand anything about katakana, but would you mind sharing both characters in a project? (Just a small project with 2 screens, a one that has half width characters and another one with double with characters). Thanks
  10. You can have 5 structs with the same structure that is used in the Data table, and load 5 rows into them. Once the up or down arrows are clicked, change the start index of the first row, and either re-read the entire 5 rows (The memory will need to be read and written 5 times anyway, even if you copy from 1 struct to another). You could create a custom control that represents the row, and place it 5 times (and control the visibility if needed if a struct is empty), and / or don't let the user scroll after the last / first row If you need dynamic images (and not just image by index), then the DT can store a string that will be used as a path for the image (if you use an image with indirect source). Those images will have to be stored on the external SD (and you will have to place them there).
  11. As I wrote on my previous post, you are using the Load and Store elements in correctly. What your Store is actually doing is: Array Talk[Array Talk[Array Talk_0]] = TalkKgIzmereno , and the load is actually doing: proba = Array Talk[Array Talk[Array Talk_0]] . When Array Talk_0 is 0, then Array Talk[Array Talk[Array Talk_0]] becomes Array Talk[0] , but after you store the value 12, then Array Talk_0 has the value 12, then the load tries to do: proba = Array Talk[12] The Load and Store in array utilities are meant for reading or writing to a different cell index on each time (For example, iterating an array). In your case, I understand that you always want to access index 0. If that's the case, then you don't need to even use Load from array and Store in array. Just use a regular store Store element, where A contains TalkKgIzmereno and B contains Array Talk [Array Talk_0] and for Loading the value, A contains Array Talk [Array Talk_0], and B contains proba In pseudo code, the regular store element does: B = A (Put the value of A inside B ) In pseudo code, the Store in Array does: A[ B ] = C (Put the value of C inside array A, at index B ) In pseudo code, the Load from Array does: C = A [ B ] (put the value inside array A at index B inside C)
  12. Can you share a small project that demonstrates the problem?
  13. There isn't one, but when I had to randomize a number, I used the Milliseconds Counter combined with other system tags that change (like scan time, Tick High / Low. etc), and them modulo 100 and add one (in order to get a number between 1 and 100).
  14. I'm not sure what you are trying to do, but store in array inputs are: A - Array B - The index inside the array that the value will be stored to C - the value to store. I'm not sure why you are putting Array Talk[Array Talk_0] in B. Assuming that it's initial value of Array Talk_0 is 0, then the value of TalkKgIzmereno will be stored into index 0 of the array (into member Array Talk_0), so it will not have the value 12. Now, if you'll call the store in array again, it will not try to put the value into index 12 (Array Talk_12), and I'm not sure that your array has 13 or more items. The same thing is with Load from Array A- Array B - The index inside the array that the value will be read from C - is the variable that the value will be written to. You are trying to read the value of Array Talk[Array Talk_12] into proba. I'm pretty sure that this is not what you are trying to do in both the Store and Load functions.
  15. I've confirmed with the Panel R&D team leader that it compares with CRC (and not by date).
  16. It is currently not supported for predefined tags. I really don't suggest using the pre-defined template. Using actual tags and structs gives you much more power, but if you do need to import from Excel, then you can send the project and the excel file to the support, and one of the R&D guys will import the excel file into the project.
  17. No. It's more like a legal issue to add fonts (with licenses) into another device.
  18. I think it reads the file from the ftp, calculates a checksum on both files and if its different then it overwrites the original if you selected to.
  19. You can use a Message Composer. Fixed Text with "/Media/Docs/" Raw Data linked to a filename (ASCII string without the extension) Fixed text with ".pdf" Then use the Ladder element Build Message to output a buffer, and then use Buffer to Tag (ASCII String)
  20. Yes, indeed the help file does not cover this new feature. The dynamic combo box can only be linked to a csv file, but if you create a csv file from your DTI Column (requires iterating the table, and using append buffer to file), then you can load it to the combo box. Put a const (not a const tag), for example: #"data.csv"
  21. Most likely that you have you have exceeded the retained memory total size (256KB). Most of the times it happens due to large Data Tables.
  22. Which tool, the dynamic combo box? If so, then it is already in 1.26.90, which was released yesterday. The version changes do not talk about it, but if you take a combo box, then you can change the location to "Indirect" and then the path property appears in the property grid. It is a path to a file where the options are separated by line-break, f.e: option1 option2 option3
  23. Saragani

    Ted

    Can you screen capture the screen so I would understand what is a messed up graphics?
×
×
  • Create New...