Jump to content


Popular Content

Showing content with the highest reputation since 06/21/2018 in Posts

  1. 1 point
    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.
  2. 1 point
    Hi all, we all do typos now and then, but this one of mine gave me a laugh when coming back to a wiring s/s a bit later. Got to watch out for those miniature broomsticks! cheers, Aus
  3. 1 point
    Hi, I am new here :-). Thanks for this great forum. Looking forward to learning and contributing. I have set up a remote connection to my UniSteam USP-156-B10 using a VNC client. So now the UniStrem PLC is accessible from the internet. It was easy, I only needed to configure port forwarding on ports 5800 and 5900 in my router, and obviously connect on the outer IP address However I have problems connecting to the UniStream from UniLogic. I have forwarded the ports (22 and 3335) in my router but I still can not connect. I did enable UDP and TCP. The configurations in the router are exactly the same for VNC and UniLogic except for the ports (5800,5900 for VNC and 22,3335 for UniLogic) Does anyone know what I am doing wrong? Are the UDP and TCP protocols not enough?
  4. 1 point
    Code like this fail to compile, with the errors in the image below. The error lines are wrong (which I'll report to unitronics in a bit), but the code compiles without the lines I showed. static void Function3() { // User code starts below this comment float a = 50; float b = 3; if(IF_EQ(1, a, 4)) STORE(1, 4, b); // User code ends above this comment } Am I using IF_EQ wrong? The docs say that IF_EQ(1,a,b) is equivalent to a == b, so I assume that this is the correct syntax.
  5. 1 point
    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 }
  6. 1 point
    Use a Positive Transition contact instead of a Direct Contact in front of your counter.
  7. 1 point
    If there's only 2 motors, I'd do something like this: This is a very simplified version to give you an idea for the logic. You will likely have much more detail in how you start and stop the motors, when they run, etc.
  8. 1 point
    https://mikrotik.com/product/RBmAP2nD is one we have a couple customers using. You will want to download winbox to configure it rather than using a terminal.
  9. 1 point
    As a general rule, it's better to stay with integers. The way you do this is to use "implied" decimals. If you need precision to 1 decimal place, multiply by 10 before the division. If you need 2 decimal places, multiply by 100. You can display the integer with implied decimals or do the math for the correct timer preset before storing. Timers will only use integers, but are in 10 ms increments.
  10. 1 point
    The Recipe is a DTI file that you can load into a table. It is downloaded with the project. When working with DTI, the data is stored in RAM. If you choose to save the DTI into file, then it is saved into the external SD card, and it is not a part of the project, while the Recipe is being downloaded with the project and does not require an external SD. At the end, you need to load the recipe into a table in order to read data from it (You can have several recipes for the same table, and you can choose in run-time which one to load).
  11. 1 point
    Apparently some of the moderators have lives or like to sleep at night. Not me of course - I'm just lazy.
  12. 1 point
    I used one V350 that logs CSV file on SD cards and then sends it by email on local network. Maybe this can be one option.
  13. 1 point
    Talked to Dan at US tech support - he suggested SD File Utilities -> File Status function block The "A" output bit MB 39 does what I need. I just call this function before I write the data line to see if I have to call a another Write Line for the header first. Joe T.
  14. 1 point
    First, all you can do in Unitronics is put in a DF1 scan block to make it a slave. It can't trigger any writes. You'll have to do all the legwork in the the AB PLC with MSG blocks. You don't get to be that specific. If you look at the Unitronics Help, the Allen Bradley B files are mapped directly to the Unitronics MB file starting at 0. The only problem is B0, B1, and B2 don't exist in Allen Bradley and the B3 file is the default bit file, which will start mapping at MB 768. To further confuse things, Unitronics assumes that all AB files are 256 words long so you have to take that into account. So Allen Bradley B11:0/0 starts at MB 2816 (11 x 256) and B10:0/0 starts at MB 2560 (10 x 256). These locations are hard-coded with the Unitronics DF1 scan block Clear as mud, I know. Your best bet is to connect the two together and start playing with AB MSG blocks in their software while you're watching the Unitronics MB memory to verify where things land. It would actually be easier to get an external DF1 to Modbus converter, which would give you more address control and allow the V570 to initiate communications. Just my personal opinion. Joe T.