Pavel M Posted May 19, 2020 Report Share Posted May 19, 2020 Hello I'm using V700 with 18E3/4XB and trying to make impulse counter without using high-speed input The problem is, input frequency is about 400Hz. Input pulse is always meander So, the question is: is that possible to make it with 1.25ms interrupt + immediate read physical input? Just put positive transition contact with increment of some integer I was thinking, that with 400hz/s i have circle time 2.5ms, with duty cycle 50% i react on every impulse. So, frequency 400Hz is my maximum without errors Is that possible to create and organize or am i missing something? Link to comment Share on other sites More sharing options...
MVP 2023 kratmel Posted May 19, 2020 MVP 2023 Report Share Posted May 19, 2020 Typical standard input response time = 10ms ===> 100Hz. Interrupt and immediate read used for make program read rate faster. But maybe standard input response do not possible to do faster with this method. You have two HSI (HSC) channel on board. Maybe rewire application to this input is possible. Link to comment Share on other sites More sharing options...
Pavel M Posted May 20, 2020 Author Report Share Posted May 20, 2020 18 hours ago, kratmel said: Typical standard input response time = 10ms ===> 100Hz. Interrupt and immediate read used for make program read rate faster. But maybe standard input response do not possible to do faster with this method. You have two HSI (HSC) channel on board. Maybe rewire application to this input is possible. Thank you for the answer In manual for E4XB i've read, that responce time for I0-I3 is 10mSec, but for I4-I17 is 2mSec Unfortunately, my inputs I0-I3 are busy with shaft encoders, i have some free inputs, so i decided not to add expansion module only for high-speed input and try to make it the way i described before Link to comment Share on other sites More sharing options...
MVP 2023 Ausman Posted May 20, 2020 MVP 2023 Report Share Posted May 20, 2020 Pavel...same as louis elsewhere, I deleted all the repeated copies of the above post that you had done. You were likely thinking "Why didn't it come up?" Well......all posts on this forum are subject to moderation. This is mainly done by a few volunteers scattered around the globe, so sometimes it can take a few hours at least. cheers, Aus Link to comment Share on other sites More sharing options...
Pavel M Posted May 20, 2020 Author Report Share Posted May 20, 2020 2 hours ago, Ausman said: Pavel...same as louis elsewhere, I deleted all the repeated copies of the above post that you had done. You were likely thinking "Why didn't it come up?" Well......all posts on this forum are subject to moderation. This is mainly done by a few volunteers scattered around the globe, so sometimes it can take a few hours at least. cheers, Aus Sorry, did not see i double-posted, just had issues with posting answer, refreshed page few times, did not see my reply and decided to post it, but forum decided to post it twice Thanks Link to comment Share on other sites More sharing options...
MVP 2023 Flex727 Posted May 20, 2020 MVP 2023 Report Share Posted May 20, 2020 On 5/19/2020 at 5:12 AM, Pavel M said: So, the question is: is that possible to make it with 1.25ms interrupt + immediate read physical input? Just put positive transition contact with increment of some integer @Joe Tauser (I think?) posted something on this recently but I can't find it now. Perhaps he'll drop back in. Link to comment Share on other sites More sharing options...
Pavel M Posted May 20, 2020 Author Report Share Posted May 20, 2020 18 minutes ago, Flex727 said: @Joe Tauser (I think?) posted something on this recently but I can't find it now. Perhaps he'll drop back in. Ok, i will check recent topics and try to find this! Thanks Link to comment Share on other sites More sharing options...
Gabriel Franco Posted May 20, 2020 Report Share Posted May 20, 2020 I don´t think it works for 400 Hz. Physical inputs requiere a minimum on-time to cath ON state. I implemented your idea long time ago but my frequency was a bit lower. Link to comment Share on other sites More sharing options...
MVP 2023 kratmel Posted May 20, 2020 MVP 2023 Report Share Posted May 20, 2020 Hi, Pavel M What is needed in your application: count pulse or mesure frequency? Link to comment Share on other sites More sharing options...
MVP 2023 Ausman Posted May 20, 2020 MVP 2023 Report Share Posted May 20, 2020 Pavel, I think lots of referencing is to my solution for something similar. But I am not sure it will work ok given that you say " input frequency is about 400Hz. Input pulse is always meander". The maths on this statement means that 1.25ms is going to be very close to the line on doing things accurately, especially if the pulse is not the same length. If 400Hz is the absolute maximum you may get away with it. The only true check would be trial and error. Here is the link. I suggest that you also read the entire topic for background. cheers, Aus Link to comment Share on other sites More sharing options...
Pavel M Posted May 21, 2020 Author Report Share Posted May 21, 2020 14 hours ago, kratmel said: Hi, Pavel M What is needed in your application: count pulse or mesure frequency? Hello, i need to count pulses, when i get the amount of pulses i need - i take some action, reset this counter value and probably, change my target counter, but the frequency with which these pulses are given is different, i mean, 400 pulses/s is maximum and it is not always 400, most part of time this frequency would be less, so i guess, i can handle that and even if i get some error, it won't be critical. Thank you everyone for answers! Link to comment Share on other sites More sharing options...
MVP 2023 Joe Tauser Posted May 21, 2020 MVP 2023 Report Share Posted May 21, 2020 On 5/20/2020 at 9:28 AM, Flex727 said: @Joe Tauser (I think?) posted something on this recently but I can't find it now. Perhaps he'll drop back in. Where has the time gone....? I haven't looked at the forum for a couple of days. Must have been in some kind of CoronaComa. Anyway, yes, you should be able to get near 400 Hz with the 1.25 ms interrupt routine. Don't forget to put your counting logic in the routine as well, as just reading the input doesn't guarantee that the main program will see it. My usual response- write some code and upload your program so we can see what you're doing. This does NOT mean screenshots. This thread has followed the usual path of wandering posts postulating about what may work. Engineers and Programmers (often the same thing) these days seem to want to avoid the real solution to the problem - hook it up with the proper tools and see if it works. The proper tool here is an oscilloscope monitoring the pulses while you look at it online, which will give you concrete information as far as pulse widths and frequencies. General rant directed at the community-- "But my boss won't buy me a scope!" This is a cop-out. Invest in yourself - a USB scope with the bandwidth required for PLC work is less than $100 on Amazon. What does that cell phone cost you? Joe T. Link to comment Share on other sites More sharing options...
MVP 2023 kratmel Posted May 21, 2020 MVP 2023 Report Share Posted May 21, 2020 I don't know, maybe it will help ... I would advise the author to turn his PLC into a test bench for a while. 1-step Set a high-speed output (O0 or O1) with PWM function in the configuration and make it possible to change the parameters (Duty Cycle and Frequency) of this output on the screen. Also start-stop buton on screen and PWM run bit ladder logic needed. You can build automatic frequency increment with fixed step from 0 to the 1000Hz for example. 2-step Use wires to send a signal from this output to the input that the author wants to turn into a counter. Step 3 - Write the counter code with an interrupt with the result displayed on the screen and setup RESET button. 4-step Add a standard high-speed input to the configuration. Connect it to the same PWM output via wire. 5- step Add a code that will count the pulses via HSC and show their number on the screen (also frequency is possible to mesure via hardware HSI). RESET button needed also. 6-step Reset both counters, start the output at the specified frequency and duty cycle or use automatic frequency increment . Next, see at the frequency and check when the counter with an interrupt will not have time to count. It can be evaluated by stop output when INTcount not equal HSCcount Make some investigation with duty cycle parameter change also. The last step - disconnect simulated by PLC signal and connect real signal. Take a few different tests. It is interesting to see the results in this topic. Unfortunately, I do not have such a 18E3/4XB module at hand for experiments. Link to comment Share on other sites More sharing options...
Pavel M Posted May 22, 2020 Author Report Share Posted May 22, 2020 Hello, so i tried to organize PWM on my output and put it on my digital input Duty cycle is always constant - 500 (my meander) So, with cycle time 8, i get +25 in my memory integer (50Hz) With cycle time 4 i get +50 in my memory integer (100Hz) When i change cycle time to 3 or less, i start to get errors (+50 all the time) With cycle time 1 I get nothing at all So, i guess, i'll need to buy expansion module with high-speed inputs Link to comment Share on other sites More sharing options...
MVP 2023 Flex727 Posted May 22, 2020 MVP 2023 Report Share Posted May 22, 2020 4 hours ago, Pavel M said: So, i guess, i'll need to buy expansion module with high-speed inputs Your V200-18-V3XB _HAS_ high-speed inputs. Link to comment Share on other sites More sharing options...
MVP 2023 kratmel Posted May 22, 2020 MVP 2023 Report Share Posted May 22, 2020 6 hours ago, Pavel M said: Hello, so i tried to organize PWM on my output and put it on my digital input Please use hardware PWM out O0 or O1 configuration for test. Please delete PWM scan block from ladder. Using software PWM method gives incorrect results for your case. Maybe ladder PWM generation is interrupted by immediate command. Hardware PWM do not use CPU resorces for generation. 2 hours ago, Flex727 said: Your V200-18-V3XB _HAS_ high-speed inputs. It is used for shaft encoder in author project... Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now