Jump to content

Saragani

Administrators
  • Content count

    845
  • Joined

  • Last visited

  • Days Won

    79

Everything posted by Saragani

  1. Saragani

    Unistream Frimware Upgrade

    What version of UniLogic are you using? Is it 1.24.48? What is the current firmware in the PLC? As much as I remember, this issue has been resolved in version 1.24.56: https://unitronicsplc.com/Download/SoftwareVersions/UniLogic/UniLogic_1_24_56.exe Can you please try that version and tell me if it helped? Thanks.
  2. Saragani

    UniLogic version 1.24.56 not opening

    I see that you have contacted me in the past regarding this issue: I understood that the problem was solved after you have used System Restore. Please follow the following steps and tell me if it helped (and if so, which one). 1 ) Download and run the UniLogic Diagnostics" If it finds any problem, click on Fix, and try running UniLogic again 2) Download and run the following exe and see if it helps: https://dotnetbinaries.blob.core.windows.net/kbassets/KB4074906/fixittool-KB4074906.exe 3) If that doesn't help, then download and install .Net framework 4.7.1: https://download.microsoft.com/download/9/E/6/9E63300C-0941-4B45-A0EC-0008F96DD480/NDP471-KB4033342-x86-x64-AllOS-ENU.exe If none of the steps helped then tell me, and also contact our support in order to schedule a remote session.
  3. Saragani

    UniLogic version 1.24.56 not opening

    Did the old version (1.18) worked before installing 1.24.56 ? What Windows version you have?
  4. Saragani

    How to Choose Right API For Send Bulk SMS

    @MsgClub, I smell SPAM. If you'll continue posting your website in this forum, then I will block you and delete your posts.
  5. @MsgClub, I smell SPAM. If you'll continue posting your website in this forum, then I will block you and delete your posts.
  6. Saragani

    Changing the Web Server page width

    Yes, you have one or more elements that their right side is located after the 800th pixel. One or more elements right side is located at 1035.
  7. Saragani

    UniLogic version 1.24.48 is not opening

    OK. Btw, if the Diagnostics shows that everything is OK, and the splash screen shows and disappears after a second or more, then it can be a various of reasons. If you are using Windows 7, then run the following exe and see if it helps: https://dotnetbinaries.blob.core.windows.net/kbassets/KB4074906/fixittool-KB4074906.exe If that doesn't help, then download and install .Net framework 4.7.1: https://download.microsoft.com/download/9/E/6/9E63300C-0941-4B45-A0EC-0008F96DD480/NDP471-KB4033342-x86-x64-AllOS-ENU.exe
  8. Saragani

    Open old projects with UniLogic 1.24 Rev 48

    UniLogic 1.48.24 does not run as Administrator. It might be that you don't have write access to the files for a user which is not an admin. One option is to copy the projects to a different folder (like somewhere in My Documents), or trying to set the permissions of the files.
  9. Saragani

    UniLogic version 1.24.48 is not opening

    Have you tried running the UniLogic Diagnostics?
  10. I'm not sure I understand question #1, but if you ask about the (1, at the beginning of every element code, then it is the RLO bit. Since you want to run it, then you pass a cost 1, but on some cases, where the element is an element that affects the RLO, then you should pass the RLO instead (for example, in INC element, you can pass 1, since it does not affect the RLO, but compares for example does). You can see the code calls of elements if you put one on the ladder, fill the tags, and then view the structure text.
  11. Saragani

    Admin users in UniLogic

    Can you confirm that 1.24.48 runs correctly on your computer without admin access? 10x
  12. Saragani

    Admin users in UniLogic

    JasonAKS, which version you are running? 1.23.25 and older, required to run as Admin. What jpoin tried to do is to run UniLogic as invoker and not as Admin. UniLogic 1.24.48 does not require you to be an Admin, so this solves jpoin's problem.
  13. No, you are not using it correctly. The element does compare 2 numbers, but it accepts an RLO (the first parameter), and it overwrites its value. The correct code would be: Please note that I still had compilation errors, which were due to white spaces (or something), after deleting the tabs, then it worked correctly. I did not download the code in order to see that it works on the PLC, and that it doesn't cause CPU error. You must use volatile float static void Function3() { // User code starts below this comment volatile float a = 50; volatile float b = 3; int rlo = 1; IF_EQ(rlo, a, (volatile float)4.0); if (rlo) { STORE(1, (volatile float)4.0, b); } // User code ends above this comment }
  14. Saragani

    No keyboard on V430 Remote Operator

    Different PLCs, different keyboards. Some of the keyboards are already cached within the built-in cache that comes with Remote Operator / Access, but you should read cache anyway, in order to support fonts that are used in the project, and other images that were added to project as well.
  15. Saragani

    No keyboard on V430 Remote Operator

    Read the Fonts and Images cache from the PLC in order to see the keyboard. The Info mode is not expected to be supported.
  16. Saragani

    Elapsed Timer is not shown in Web Server

    Yep, In timer Elapsed it should link to both Present and Current, but due to a small bug, it links to the Out member, so the workaround is what I've suggested above (Until the fix will be released in few months).
  17. Saragani

    Elapsed Timer is not shown in Web Server

    I think that it worked on my example because I had in my web page both Present, Current and Elapsed, so this is kind of a workaround. You can put 2 more Timer Boxes for each timer, with the Present and the Current, and link the Visibility Bit to the System tag General.OFF Please tell me if it works. After I'll fix this issue, the fix will be scheduled to a version that will be released in 2-3 months. (So it is good if the workaround works)
  18. Saragani

    Elapsed Timer is not shown in Web Server

    The good new are that I'm able to reproduce it with your project. I'll have an answer next week, since I need to understand why in my small example it worked, while in yours it doesn't.
  19. Saragani

    Elapsed Timer is not shown in Web Server

    Are all the other tags show the correct values? Can you upload the project, so I'll try reprooducing it here? 10x
  20. Saragani

    ASCII characters to UTF16 or UTF32

    Well, for start, I can assume that you want to replace more than one character, and not only / with Ž, and you repeat the Find and Replace in "BUFFER HEX Rx" data length times. Lets assume that your buffer length is N, the number of characters you want to replace are M. For each characters, you do N replaces, and the Find and Replace searches for the character in the input array, so in the worst case scenario, the Find and Replace goes over all the characters / array members on each iteration. This means that the complexity is N*N*M, which is O(N^3). I would do it differently. I would iterate on the "BUFFER HEX" using a loop (using Jump to Region), from index = 0 to Rx data length, and I would use Load From Array for reading the INT8 value from a specific index on the array. Then I would use a Lookup table in order to get the new INT8 value I need to place. By Lookup table, you can use a Data Table with 128 rows (The struct will contain INT8 member), or just an array, so on each index of that table / array, I place the correct value, for example, for the Letters A to Z and the numbers 0-9. I place their ASCII value, and for row number 47 (which is the ASCII of /, I place the value of 142, which is 0x8E, the ASCII value of Ž). And you can optimize the code, don't try readying the value from the Data Table, of the Value is from the range of A-Z and 0-9 (65-90 and 48-57), and if the Value you read from "BUFFER HEX" is 0, then stop iterating, since it's a Null (end of string). This code has a complexity of O(N) Furthermore, just like you used Copy Buffer to Tag, and placed "BUFFER HEX", then you can do the same thing with Copy Tag to Buffer. When you select "BUFFER HEX" in the "Copy tag to Buffer", then it automatically adds a [ since this tag input accepts both arrays and simple tags like INT8, so if you delete the last [, and press Enter, then it would accept the expression. // EDIT: I see that you are also repeating the find and replace on each cycle and you don't even want for the data to arrive. Here is an updated version of your project. proba1.ulpr
  21. Saragani

    ASCII characters to UTF16 or UTF32

    Can you upload an example project and tell me where (which rung) you are stuck at? I'm having trouble understanding what works fine and what's not.
  22. Saragani

    ASCII characters to UTF16 or UTF32

    The ASCII string that used by the UniStream is 8 bits ASCII. Making your camera convert Ž to # is wrong since # is mapped to characters that are below ASCII code 128. This means that you will not be able to distinguish between Ž and # because both will be converted to #. Can't the camera output Unicode? If it's only able to output ASCII, then are you sure it is 7 bit ASCII? Because then I cannot see how can you output any Croatian characters. (And I'm not seeing the point of outputting 7 bits ASCII, since each character still takes 1 byte, so the extra bit becomes pointless).
  23. Saragani

    Password Protect on Formulas

    I already replied the support about this issue. When writing 3738 / 100000, it performs Integer division, which in the case results 0. However adding a .0 to any of the numbers you divide will cause the number to be casted to float, and it will result the desired output. Going on the safe side, I would add a .0 to both numbers, meaning: 3738.0 / 100000.0 If either 3738 or 100000 come from parameters that change, then you can either multiple any of these parameters by 1.0 (which would cast the number to float and will force a float division. Another way to write ( 3738 / 100000 ) * A, is: ( 3738 * A / 100000 ) Since A is float, the 3738 will be cast to float, so the entire division will be a float division. // EDIT: VisiLogic and UniLogic devide differently on when to cast to float. I can give an example from VisiLogic of a similar "issues". Let's take the formula A / B If A us 5 and B is 3, the result is 1.6666666... Assuming A and B are MIs, then if we place the result into an MI, the actual result would be 1 and not 2 (even though in this case you would assume it needs to round the number) because the A and B was divided using Integers division. If however the result is stored into an MF, the result would be 1.666666666666 Now, if we repeat the test but now the formula is A / B + C, where only C is a MF, and the result is once again stored into an MI, then: if A is 5, B is 3 and C is 0, then magically, the result becomes 2. Why? because now A and B are divided using float division and not integer division. I'm not sure if VisiLogic automatically casts all the numbers to floats as soon as there is a float in either the formula or the result. (I'm guessing that digging in both VisiLogic and the PLC code would produce the answer). I'm not sure on which scenarios numbers and operations should be case to float, but if you take c# and write a code that executes the exact formula that you have, then the division will be using Integer division, since 2 integers are being divided and only then the result is being cast to float in order to be multiplied by another float. For example, taking your formula. In c#: float A = 10; var result = Math.Exp(1.45723 + ((3738 / 100000) * A) - (0.000153067 * (Math.Pow(A, 2))) + (0.000000676029 * (Math.Pow(A, 3))) - (0.00000000257604 * (Math.Pow(A, 4)))); var resultF = Math.Exp(1.45723 + ((3738.0 / 100000.0) * A) - (0.000153067 * (Math.Pow(A, 2))) + (0.000000676029 * (Math.Pow(A, 3))) - (0.00000000257604 * (Math.Pow(A, 4)))); result = 4.2315720565926735 resultF = 6.149517162661482 So Microsoft is wrong to?
  24. Correct, but even if there is a power failure, since you store the table in retained memory, then it is backed-up using battery, so it should retain the values unless the battery is low.
×