Jump to content

Saragani

Members
  • Posts

    1,195
  • Joined

  • Last visited

  • Days Won

    116

Everything posted by Saragani

  1. OK. Dakol can forward the application to us, or you can give me or someone at the support a dropbox link. Any of the options is fine. In UniLogic I don't see any limitation on creating more than 16 users. Is the limitation is in the PLC?
  2. I see from the logs: unexpected server response to PASS: 530 Login authentication failed Please confirm that the IP, Port, Username and Password are correct, and if they are, then try performing a "Download All" to the PLC. If the problem is still not solved, then can you please connect with FileZilla to the server? Then copy the text from FileZilla and paste it here. You may (and probably should), replace the server address / IP and also the password (replace it with ******) . It can also help if you can supply to us (To the Panel R&D team), a username and password to the server (preferred some temp username and password that you can later delete from the server), so we could debug the server connection and login / authentication, Thanks.
  3. "is it correct that the zip file ask me for a password to extract it?" Yes. The logs are for internal / debug use and should be opened by Unitronics R&D only.
  4. Hi, The wrong Username and Group in the UAC struct are now fixed, and the fixed version will be released in the next version. In the video, I noticed that 2 buttons get enabled when you enter the wrong password. Is it also a bug with the UAC (We were not able to reproduce it), and I've asked you last week about it. Since I don't have your project, then I can't debug it, or try to reproduce the problem with it. The title of this thread is wrong UAC struct values (the title does not indicate a problem with the UAC state, or buttons state). Please update me about the problem. Thanks.
  5. OK. I've got the status codes of the FTP Client: typedef enum FTP_Client_SUCCESS = 0, FTP_Client_IN_PROGRESS = 2, FTP_Client_CONNECTION_ERROR = -1, FTP_Client_LOGIN_ERROR = -2, FTP_Client_LOCAL_FILE_ERROR = -3, FTP_Client_REMOTE_FILE_ERROR = -4, FTP_Client_PERMISSION_ERROR = -5, FTP_Client_UNKNOWN_ERROR = -6 So, -6 means unknown error (and it doesn't look like a connection error). Please make sure you have a connection from your PC to the PLC, then try connecting the PLC to the FTP again, and after it fails, then in UniLogic to go: UniStream Management -> Debug -> Upload log In the destination folder where you chose to upload the log file, you should find a file called UniLog.zip Please upload it here (if it's possible), or send it to our support and ask them to send it to me, or to Noam, and we'll take it from here (The log should give us a clean information about the statuses that the FTP Server returned to the PLC). Thanks.
  6. The fact that the FTP is reachable to PC does not indicate that it is reachable to the PLC. Is the FTP local? (not somewhere on the internet?) Have you tried pinging the FTP Server through the Ladder element Ping (through the Panel)? (this way you can see if the PLC can even reach the FTP Server).
  7. Suggestions are always a good idea. Some of them, get accepted and improve the usability of the software. In the manner of your issue: I just tried to reproduce the problem with UniLogic and UniStream 1.21, and got the same result as with 1.23 (pre-released), and the Panel R&D team leader says that this bug was fixed long time ago, even before 1.21. I know that you are using the latest version, so if you can, please try reproducing the issue with an empty / new project. Just add 2 users (one admin and 1 operator), and add one button to a screen and link it to L3. Also add a textbox and hows the logged in user, and choose either to hide the button or to have the touch disabled (with disable color). Tell me if you were able to reproduce the problem where the button gets visible / enabled (I don't care about the user name that you see in the textbox, since I already saw that it happens). If the problem does not reproduces with a new project, then maybe something with the big project that you have on the PLC is causing the bug, and in this case we might need that project for debug. Thanks.
  8. OK. I'm getting the information about when and on which version it was fixed. Maybe it was fixed after 1.22 was released. Anyhow, the video shows how to reproduce the problem. I was not able to reproduce the problem where the buttons get enabled, but I do see the problem where the User Access Control Tag shows the name of the last logged in user, even though no one is currently logged it (this along with some other invalid members values in the struct, like event type, and user group), so I'm passing this to the Panel R&D team and the Q.A team as well.
  9. Hello, Which UniLogic version are you using? This issue was already fixed - Please download the latest version of UniLogic, Update the firmware and test again. BTW, just a heads up, I remember that you have Windows 7 64 Bit. There is a Windows update that was released about a week ago, and it causes UniLogic to stop working (as a matter of fact, it is causing a lot WPF .net programs to stop working). The problem is described here: https://github.com/dotnet/announcements/issues/53 Microsoft is working on a fix, but I'm not sure when they will release it, so in case your UniLogic stops working (splash screen closes without UniLogic starting), then use one of the workarounds suggested in that link (The easiest is #1, while #3 doesn't require installing or uninstalling anything, just overwriting a file).
  10. Yes, both X and Y will not be changed. Strings, Arrays and structs are always passed by ref (with pointers). And you are also correct that the function out parameters are passed as pointers (Functions are currently always returning void). If you want to affect a numeric tag or bit tag in a UDFB, then pass it as function out (or pass it with a struct, it that makes sense in the UDFB. For example, a UDFB that handles PID, then there is some logic to pass the entire PID struct, and not 20 tags inputs and outputs of single tags inside the PID struct). "in this case if I use as function_in and function_out the same variable this will be affect by the UDFB operation...right!?." Well, when you define it as function-in and function-out, then you will have 2 different tags in the UDFB, for example: _a_IN, and _a_OUT. If you only change the value of _a_IN, then it won't affect the global tag. The UDFB doesn't know that _a_IN and _a_OUT are the same tag, since one come from the stack, and the other one from the RAM by pointer. Furthermore, in one call I can call Foo(A, &A), and in other call (A, &B). I've read your post, but I'm unsure that was the request. It is passing a numeric tag as function in, but choosing if they are passed by value or by reference?
  11. OK, lets try explaining it differently. A function is just a piece of code (instructions) in memory. Lets say that I have a function called Foo(int32 A, Int32 B); When I call the Foo function with lets say A = 1, and B = 2, and the computer pushes to the stack the number A and the number B. Then the function pops B and A from the stack (it knows that it has 2 parameters, which each of them is 4 bytes). In this case, the values 1 and 2 were placed in the stack. This is sending something by values. Now if inside Foo, I change A or B, then it won't affect the Tag that was originally sent. Now assuming that I pass something by reference... Lets define A and B. A has the value 1 and B has the value 2, A is placed (for example) in absolute address in RAM at 0x1000000 B is placed (for example) in absolute address in RAM at 0x1000004 Now, lets define Foo differently. Foo(by ref int32 A, int32 B). When I call Foo, the computer pushes to the stack 0x1000000 (address of A), and 2 (the value of B). Then when the function starts, the computer (the code) pops the value of B, and then the address of A. The code knows (by the signature of the function), that 0x1000000 is not the value of A, but that is the address. Now if I write A = A + B, then the computer would go to the address 0x1000000, take the value from there, take the value of B, add them, and then go to the address 0x1000000 and place the new value (in this case, 3) in that address. Now, because we overwrite the value that sits on 0x1000000, then the value of A outside of the function was also changed. The address of A is called a Pointer.... because it points to an address in memory.
  12. Make a circle - Currently not supported (due to lack of requests to draw a circle). Just put an image with a circle. Multi-state image - User Binary Image if you have 2 states linked to a bit, List of Images if you have an image per index, or Range of Images of you want to have an image for a number within a range, and different images for different ranges, Group graphics - Will be supported from version 1.23 (should be released next month), with some other features like Layers, and per element Lock, etc... You can use Custom Control. Custom Controls allows you to use the same control multiple times with different parameters (it's like a UDFB for screens). Add a new custom control, put the elements you want inside it, and then go to a screen that you want to use the custom control in it, and drag the custom control from the toolbox. The custom control and all of it's elements will behave as 1 unit.
  13. Add an Binary Image or Binary Text Element, and in the configuration window of that element, set the "Toggle" checkbox. Set Image for 0 and Image for 1 for Binary Image element, or Text for 0 and Text for 1 for Binary Text element Set a link (Bit) to it, and that's it.
  14. Download the attached Rar file, and extract the files to UniLogic installation directory. This means that the "UniLogic Diagnostics.exe" (and all the other files) must be placed in the same directory where "Unitronics.Shell.UI.exe" is located (usually at: "C:\Program Files (x86)\Unitronics\UniLogic\") After you've extracted the files, run "UniLogic Diagnostics.exe" and click on Diagnose. Most chances that it will show "SQL Instance" as one that has problems. In case it find problems, the "Fix" button will become enabled. Click on Fix, and the program will attempt to fix the problem, and then it will re-diagnose the problems to confirm that they are fixed. Please tell me what problems it found . Also tell me if it managed to fix the problem that you're experiencing with UniLogic (that it is stuck in loading components). Thanks. UniLogic Diagnostics.rar
  15. Each tag that you create in the Global tags, has an absolute address. Passing something by reference means that the function which gets it, gets the address of that tag. Passing something by value means that not the address, but the actual value is being passed. In the "Increment" element, although the number is being passed at the left side, it is being passed by reference, since an increment is being done on the tag itself. When you write your own UDFB, then numbers and bits that are being passed as Function-In, are being sent as values. Meaning, that if you pass a number as function-in, and then for example increment it inside the function, then after you exit that function, then you should see that the value was not changed. Arrays and Structs that are sent through a Function-In, are being passed by reference, so if you increment a number inside a struct or array, then it will affect the global tag. You can also pass a number or a bit as a function-out, and then it is being passed as reference. Strings, as much as I remember, are being passed as reference. (You can check it)
  16. Btw, I have greatly improved the export import speed of functions / screens etc. The export itself would now take about 3rd of the time it would normally take, so it is less slower. Please check on the next release and tell me if it improved it by much for you. We will consider having a Duplicate Function in the future.
  17. Pass the bits as Function-Out or pass an entire array or struct that contains those bits as a function-in, and the set / reset coil will still affect the values. (Passing tags by reference vs by value).
  18. Hi. Value types, like integers, Bits, Real, are being passed by value (Meaning, their value is being passed to the function, and not the pointer to the value) when used in a function-in. So any attempt to change their value within a function code will only affect the value inside the function. Arrays and structs are being passed by Reference, so if you change a value of a bit or a number inside it from a function code, then it will affect the value outside the function. You have 2 options: Passing an array/ struct, or pass the number / bit as a function-out (which means that it will be passed as a reference). I hope this information helps.
  19. 1) We already aware of that, and it will be fixed on next version. 2) OK. Strings will be left aligned 2.1) The original behavior was editing with a single click, but since you can now select ranges, and then export / import to CSV and Copy paste it, then a single click would not work (Because it would prevent selecting a range) 4) You can export and import a function. 7) Might be added in the future.
  20. Without having the project and debugging it, and seeing on own eyes, no one will be able to help you.
  21. OK. It's weird, but it started to happen more frequently, even with old installers. Some suggestions that helped other people is to clear the 2 temp folders and 1 Prefetch folder on the computer
  22. The image you've uploaded is 160x60. Is it while downloading a project? or is it while trying to install UniLogic?
  23. If you download to the PLC then the PLC will lose the file (compiled project in the PLC). If the original download did not include an "Upload", then the original project cannot be restored (The PLC only have the compiled results in that case).
×
×
  • Create New...