Jump to content


  • Content Count

  • Joined

  • Last visited

Community Reputation

0 Neutral

About krolikbest

  • Rank

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Thanks for explanation. My thinking was like a pc-programmer (I took it like calling subprocedure/function) hence misunderstandnis.
  2. Hi, hardware : V700, 4x servo Liteon, communication 485, modbus. Servos are switched on. when I don't use subroutine (named ResetHomOK) and directly in the ladder 14 put what is on the second photo then I can read Modbus frames, but if i use subroutine then can't. There is some picture below describing my problem: In ladder 14 I use subroutine and this subroutine "Reset HomOK" looks like: Return from this subroutine is ater all frames are read (or should be). So I expected to get values in MI830 and MI831, but didn't (have zero as a default).. I'm little lost, want to use subroutines because I find it very useful.
  3. Thank for reply, I'm aware of modbus rtu disadvantages but fortunately it's not crucial process. My solution is already tested and workable but always maybe is sometnig better.. I've downloaded example project of Mr. Tauser and as I understand after every operation is set some value to specific MI, which says which condition/state it's in. So this is the difference to my solution that now I would know which operation is after. Ok, take into consideration for future. Idea of incrementing based on SB7/SB15 also is interesting. I'll test it. Thank you.
  4. Hi, I need to send for few devices modbus rtu frames -strictly saying for every device two modbus frames. All frames should be sent by pressing one button , so for first and second modbus frames I use : steps 1,2 for 1-st device 1. if [MB_positive transition] then send first MBS_frame 2. if [MB_negative transition] then send second MBS_frame and set MB_sent_frame and then for the other I use timer and one MB element as a semaphore: steps 3,4 for 2-nd device 3. if MB_sent_frame then set Timer1 and reset MB_sent_frame 4. if Timer1 then send next MBS_frame and set MB_sent_frame and reset Timer1 steps 5,6 for 3-rd device 5. step 3 6. step 4 and so on As you see, it looks "a bit" complicated, maybe.. Or do you have some patents to make it simpler or better looking? The best imho would be something like "time sequencer" function block, in which I could set time interval and tasks to go. Maybe already is something similar I don't know? Regards, Martin
  5. Ok, I don't need 'live' encoder's values at all. I was a little puzzled. During programing the device, after some movement it is enough to read current encoder position once and save it in PLC. And then during normal operation if servo will not report some error it means that this move is correct or if some error then it will be processed. So no more questions
  6. Main PLC has to read servo's encoders in order to 'know' current location of device. In the worst case that some instructions (currently send via modbus) like displayed buttons won't execute then reprogram buttons to physical output module instead of relying on modbus. "I use the Modbus portion to set parameters in the servo" - either do I, " before I trigger a move with a voltage signal or contact." - currently I send it via modbus but yes, worth to think it over.
  7. Hello, so far this routine (below) works fine for one servo - readinf encoder value. But in near future I'm going to "talk" with four servos and now wondering how to do that. My idea is 4 similar routines like this one (for every one routine different Time operand)? There I'm affraid of time delay for the last servo which would be read. Perhaps other solution you can suggest to read enocoders value through Modbus? Would like to mention that V700 PLC do other modbus tasks, for exapmle a button which sends something to servo (i.e Stop instruction) on a display can be now very risky because of servos-reading routine which still in main routine works (but it have to)... How to avoid such problems? explanation of Operand MB100 = "Modbus Function in Progress"
  8. Thanks for the response. I dont't remember where but i'm pretty sure I saw already similar to your idea. So ok, will take into knowledbase
  9. Hello, I need to read 32bits number from servo register. In order to do that I use FB "Read Holding Register" and wherein I set ML type for "Master:Start of Vector" and "Vector length" is equal 4. That works but I wonder if is there any other solution to read 32bits number or this way is ok? Regards, Martin
  10. Ok, it seems that I got it at last. for others: if you create an alarm then you should set alarm active bit (in config of this alarm) and in main loop (or Main Routine) checks this bit. If ON then use Show Alarm. It is also good to check Show Jump to Display Button - it helps close alarm window and return directly to display. simply Or am I wrong?
  11. Hi, perhaps I'm next one with alarms problem. Lets say I have one button on display1. After pressing this button should be visible alarm. To see this alarm I definded Alarm000 under Gropus-General Collection. This Alarm000 contains alarma trigger = this button on display1 and condition that when trigger is ON. At first look should it work, but somehow does not.. I know example for v1040 but it doesn't seem to work as well (as I expect). I see all history alarm but I would like to see this alarm immediately visible after pressing button on display1. What am I doing wrong? Regards, Martin
  12. Solved. Explanation: previously I loaded Displays and subroutines via ladder (but I don't know what could I do wrong in this way) instead of use jumps and triggers. Now it works excellent. Martin
  13. Hi, I know but there is not problem with com1-usb. the question is why with disconnected com1 i can set output (O0) ON but with connected i can't if the --/ MB113/--(O0)- is in subroutine? But if i put this above in the main routine it works regardless of the rs232 cable (connected or disconnected)..
  14. OK i'm almost sure that this issue causes rs232 cable. so please set it as solved.
  15. Hi, i'm new on this forum so i'd like to say welcome at first. And second ask about some odd issue: hardware spec : V700+ v200-18-e2b. Having startup display and two additional displays. one for automatic mode and one for manual mode. Every mode has own subroutine. In start-up display one can choose which mode. The PLC controller in automatic mode connects with servo and sends datas via modbus (that works). In manual mode there is simply (as a subroutine): --/ /--()- if button pressed (let's say MB 113) then open (O 0) For a connection I use com1 as a RS232. Watching this online I see I press the button (MB113 makes active-red color) but output remains still off. I started searching what is going on and checked that this happens when com1 is connected to servo but usb cable I use to programm is disconnected from the PC computer. On the other hand when i disconnect com1 from PLCside or servo side then pressing button (MB113) makes output O0 active. If I connect usb cable to PLC and having connected com1 to plc and servo it works as well. Odd, at least for me. In main routine there is no modbus blocks, but at start-up com init and modbus config. What can cause this problem?
  • Create New...