Jump to content

Isakovic

Members More Space
  • Content count

    83
  • Joined

  • Last visited

  • Days Won

    5

Isakovic last won the day on March 12

Isakovic had the most liked content!

Community Reputation

14 Good

1 Follower

About Isakovic

  • Rank
    Advanced Member

Profile Information

  • Gender
    Not Telling

Recent Profile Visitors

1,232 profile views
  1. Bundle all bits and registers into couple of consecutive registers with struct command, so you can send them all with one Modbus command. Of course, you have to unpack it on the other side.
  2. Usual workaround is to put an MI for user input and mask it to 1 decimal place. Then divide it with 10 in ladder to convert to float.
  3. True. I wasn't paying attention. I can confirm that Modbus functions can be called one after another without delay (with "Modbus in progress" bit as condition) and it works without problems. As soon as one function is called "Modbus in progress" bit is set in the next rung blocking second function from being called before first one is finished. Maybe if you called subroutine with CAN write functions after each of those rungs in the picture you first posted, it could work without timers. Although, I don't know if it would make any difference.
  4. It seems to me that this happened: Rung 6 gets executed because stage index in 3, at the end of the rung index is incremented to 4 so the next rung 7 also gets executed. When you say some messages are ignored, is it that only the last message gets through?
  5. Does anyone know what is the purpose of register SI280? What "minutes" is it counting? I can't find it in help file. I ain't using it, just curious.
  6. I missed the webinar.

    Dammit!

    >_<

    1. Cara Bereck Levy
    2. Cara Bereck Levy

      Cara Bereck Levy

      And  if you miss this one as well - well my friend, we've got you covered. You should get a mail with a link to  a recording  ofthe webinar you missed in a couple of days--assuming you  signed up m the mail is sent automatically.

    3. Isakovic

      Isakovic

      Thanks, Cara. I'll get this one.

      🙂

  7. No problem Johschr, glad to help. You could see what is stored in MI900 and following registers by opening block "SD Utility Delimited Line". There you will see data that is written. It will be couple of rows of what is to be written into CSV file, each row in this block will be data in consecutive columns. Ex. #1 Indirect text - ML 15 (Because you have a function block that turns date into ascii in line 1 of your code) #2 Indirect text - ML 10 (Because you have a function block that turns time into ascii in line 1 of your code) #2 Numeric field - MI0 (Maybe a process value, pressure) So block "SD Utility Delimited Line" will take all those fields, add delimiters on the end and store all that into one line of ascii characters starting from MI900. That's how to see what is in MI900, basically one row of your CSV file. It could be that MI900 quickly changes value when function is called because it first holds titles of columns until they are written in line, and then gets overwritten with process data. Can't really say what is causing PLC to freeze. Looks like up arrow on keyboard is used to reset status bits from one write function to allow the next one to be called, from what I can see in the pictures. Does data get written into CSV after pressing it? Maybe there is some sort of conflict if you are accessing and SD card while PLC is writing to it. Just guessing now, troubleshooting someone else's work can be difficult.
  8. MI900 is the beginning register of a line that will be written into CSV file by block "Write -> SD". So MI900 and couple of registers after it (MI901, MI902...) will contain ASCII stuff to be written, each register is 16 bits, so it will hold two 8-bit characters, it's difficult to interpret what those registers contain just by looking at them. Help file is useful, open every block and click help to see what it does. How big is that file that you are writing into? Maybe there is a limit to how large it can be. If you are writing every minute it can get big over time.
  9. Can you use other "strange" function codes? I've seen that code 35: works for ML, DW and timer registers.
  10. I don't know why you use Drums, maybe just try rapid fire like in the picture, it could go faster. It works for me, but I always use 9600 though. Good luck.
  11. VisiLogic lets you put coils in series and get the same result as putting them one atop of another, like your step 20. Code gets more compact when you have a lot of coils. Thanks for the feedback, it's good to see results.
  12. Maybe you mean input impedance for 4-20 mA? You see how many ohms your transmitter can supply, and this should be less or equal to sum of all analog inputs impedances through which current signal is running. You should worry about this only if you have more than one analog input on a single 4-20 transmitter.
  13. For Unitronics side you need Modbus config block and scan block in your ladder. And also Modbus address space to find what you want to read, you can find all of this in help files and examples. You can also use system operands for Ethernet (SB, SI and SDW) for troubleshoting, To see if Fatek's messages are getting through.
  14. Laptop I use has strange behaving com ports depending on whether the charger is plugged or not. Grounding issues I guess. Sometimes it takes several tries to get it communicating with the PLC.
×