ML1100 High speed counter

vk_bt1

Member
Join Date
Jul 2007
Location
Australia
Posts
57
Hi all, I've been involved in a project with an ML1100 and AB 845H-SJDB26CSY2C incremental encoder.

Initially we set up the encoder and had a nice repeatable result while the project was minimal. I was not surprised to find it lost some repeatability as the program size grew substantially. I thought this would be a simple matter of utilising the interrupt as assigned in the HSC file, and load the desired pulse count into the upper count. All this was achieved, and initially is seemed ok, but there is still the occasional variation of a few mm, which given the current slow operating speeds really isn't up to scratch. I've used HSC's in siemens PLC's before without any hassles, but am unsure If I'm missing something with the AB stuff. Are outputs written to immediately from the interrupt when called? or does a specific instruction need to be used like an SI (set intantaneous)?

Also, we've only had luck setting the encoder up as an up counter. The up/down didn't seem to work, and the cable that the project sparky wired it with isn't shielded, I assume it should be.

A brief overview of the setup

1/ operator inputs distance required
2/ distance in mm is multiplied to convert it to pulses
3/ a mov statement was used to convert the FP to an integer
4/ a mov was used to move the integer into the HSC upper count
5/ a subroutine was specified as the interrupt in the HSC file, no special labels were used to designate it as an interrupt though.
6/ an unlatch for the motor contactor OP was placed in the interrupt.

Still no dice, I'm sure I must be missing something simple :(
 
The HSC requires no instructions or interrupts. It uses the HSC function file. Can you post your RSS file?

What type of speed are we looking at here?
 
Last edited:
Hi, yes I understand that the HSC file needs to be configured. But I wish to turn a particular output off to stop the drive / motor at the point in time when the count is reached. This length needs to be changed depending on user input from time to time, and just using a compare of the HSC value in a normal LAD file worked at first, but as the program grew it became innacurate.

It is working, but not with the consistency I believe it should have. I would think that a tolerance of plus or minus 1mm should be easily achieveable with this setup. I'll get the file and strip all the unecessary code out and post that if you like.

As for the speed, i think its a 1440 rpm motor, and it runs initially at 20%, then 10%, for the last 90% of the cut length. The rollers it runs on aren't real large, at a guess 80mm diameter. I can confirm all this but I think you would agree for this app it is moving quite slow, something equivalent to a brisk walking pace during the fast feed at best (I know, thats a strange analogy)

I'll get working on stripping the code for you.
 
My first thing would be to figure out why you couldn't get the program to function with the HSC configured as an encoder. Did you have HSC:0.MOD set to 6? The problem is that if that encoder oscillates in anyway the Micrologix 1100 will not know it has backed up.

My main concern with speed is the Micrologix 1100 inputs have a limit of 20kHz. Do you think you are getting close to that limit?

Since I don't know anything about your machine, could you tell me what type of time frame we are talking about? You say it is getting a few millimeters off...what type of variation in the response time would cause this?

If we are talking milliseconds for this variation to occur then you might thy the IOM instruction in place of you OTU for stopping the motor. It will eliminate program size causing your issue. I'm going to guess it has more to do with running the HSC in counter mode
 
Hi, I thought I had tried mode 6, but now I'm wondering. I'll use the OTU, thats was I was looking for, but I'll try both, and get the install guy to rerun the encoder cable with a shielded cable.

Also, with the OTU, which is the least significant bit of the mask? the leftmost or rightmost. i.e. which one is I0/0?

Thanks.
 
Much to my dismay the OTU didn't fix the problem. I was sure that was the solution but am now beginning to realise that TWcontrols is more than likely on the money in regards to how the encoder is set up. How should it be wired and configured to the PLC?

Quick start guide says, A to I:0/0, B to I:0/1, dc-common to ovdc, and naturally 24vdc to supply. Its suggests minimum config as setting up the PFN, setting the CE and AS bits to 1, and setting mode 6. Am I right in assuming that the CE,AS, and mode can be set in the file, and downloaded, and that they dont have to be loaded from the program?

The shielded cable goes in tommorow also.
 
Last edited:
Just to clarify, encoder common, to dc common, which is linked to 0vdc.
New cable, with the aforementioned wiring went in. HSC set to mode six, and initially it appears to be working more accurately. It looks like that was indeed the problem.

Thanks for the help guys, much appreciated, Cheers.
 
Last edited:

Similar Topics

Hi, I'm about to code my first MicroLogix 1100. No real drama there, however I'm not sure how to use the high speed counter function. I will be...
Replies
6
Views
7,251
I'm looking to implement a low-cost, efficient method of communicating some integer values to an R30iB robot from a Rockwell 1100 PLC. I am not...
Replies
8
Views
1,725
Hello all, I am trying to setup my MicroLogix 1100 as a modbus RTU master for a modbus network containing multiple modbus RTU slaves. I currently...
Replies
7
Views
3,921
We have a machine that keeps losing its program at random intervals; sometimes 2x-3x in a shift, sometimes will go over 1wk without issue. I had a...
Replies
9
Views
2,936
Just asking for clarification here, but from my research all I need is a 500 ohm resistor across the AI and the common? Heres my schematic. I...
Replies
5
Views
2,582
Back
Top Bottom