-
Content count
453 -
Joined
-
Last visited
Posts posted by ParaffinPower
-
-
Hello Bob I know how much you love function blocks, but there's no better way, I'm afraid! This FB wants the multiplier, the D location of the input table, and the D location of your results table. The D area is implied internally, so it just wants the address. All data types are UINTs, but changing to another is easy. In the example, the input table starts at D0, and the results appear at D40. The multiplier is hard coded as &4; make this your variable. Pp ForBob.cxp -
I think it's a limitation of cj2 in st. Pp -
VB Script isn't unique to CX-S. Thereare loads of resources on the internet concerning it. Pp -
You need two MSKS instructions. The first one determines which interrupts are to be enabled; the unit number (0 or 1) for N and which inputs you require to be enabled as an interrupt for C (as a binary pattern). If your interrupt input was wired to bit 0, then this would be &1. Multiple inputs can be specified. &9 would enable bits 0 and 3, for example. The second instruction needs the unit number. This time N is 2 or 3 which relate to unit 0 or 1 respectively. The edge you wish to invoke the interrupt from is defined in C; again in a binary pattern with 0 relating to a rising edge, and 1 a falling edge. This depends on if your sensor is configured light-on or dark-on. The inputs 0-15 are fixed to interrupt task numbers 100-115 respectively. The task will be invoked once per interrupt. Pp -
-
Hello The NCx supports 'Interrupt Feeding'. This is exactly what you're trying to achieve. It requires the sensor to be wired into the drive directly. (Manual W426) This will be very accurate. Another method is to issue a Move command. You can change the target position (on your sensor) and re-issue the move command flag. Probably easier, in truth. Pp -
The Easy Master is on the CP1L or H only, not CJ. If using CJ, the protocol macro option is your best bet. Just out of interest, if they were Omron inverters then 1 pre-written FB does everything for you... Pp -
Just HL, yes but it doesn't suffer from 'usual' hl restrictions. Did the nq make it to the US? Worst omron product ever. -
Not possible, I'm afraid. Throw the NQ in the bin and use an NB if you want a cheaper alternative to the NS!! Pp -
Hello First, you will need the manual. Set the dip switches according to your application. Without any other changes, this will give you temperature control! I usually change the control period from 20 seconds to 2 or 3 maybe. If necessary, run the autotune. There is example ladder in the manual that shows exactly how to do it. Pp -
Hello Have you put the alarm messages on different screens, or are they shown in the alarm viewer? If you've 'allied' the $SW memory to plc memory, the plc can make a screen change, if that helps? Pp -
MyOmron.com of course! Specifically here : http://www.myomron.com/index.php?action=kb&article=1278 Pp -
Hello With a CJ1, the easiest way is to buy a CJ1W-SCU41, and use the pre-written function block. Pp -
Is this a new installation or an existing machine? Try changing the pulley ratio to 2:1 -
I'll take a stab... What's the inertia ratio? -
Hello I'd use an array within a ST function block. Declare a variable MyINT[2]. The array length doesn't matter. Use AT addressing (D0 would be good) example code MyINT[Pointer] := ValueToLog; Pointer := Pointer + 1; If Pointer > MaxNumber then Do Something; end_if; You can offset from D0 by: MyINT[Pointer + 1000]; (* This will start at D1000 *) Obviously, the 1000 can be an input to the FB giving you flexibility. From within the ST, you can use the WRITE_TEXT instruction to get your numbers on the CF. This will write ASII text, so you'll need to convert each value just before writing using the in line conversion (INT_TO_STRING and its variants) You may want to log 10 values (for example) then add a line feed. This is buried in the help file showing how you code non-printable characters: $$: $ mark (ASCII code: #24) $': single quotation (ASCII code: #27) $L or $l: line feed (ASCII code: #0A) $N or $n: new line (ASCII code: #0D0A) $P or $p: form feed (ASCII code: #0C) $R or $r: Carriage return (ASCII code: #0D) $T or $t: Horizontal Tabulation (ASCII code: #09) Pp -
Avoid BCD; the NCF card and servos use DINTs for speed and position commands. As your BCD numbers are interpreted as DINTs by the (incredible) NCF card, the low WORD for hex 25000 is decimal 5 (very slow), where the low word for hex 24999 is 18000 or so (faster). Are you using a MOVL to move the speed into the axis operating output area? That's your problem I bet. Pp -
If it's going backwards then the position will be decreasing regardless of where you monitor it. You must be telling it to go backwards, though. You would be able to put the units into m/min in the drive (or a multiple thereof) and read directly - this will still be negative though. Either multiply by -1 or do it on the hmi. You could reverse the servo (see my first post) and save yourself a job. Pp -
If it's going backwards then the position will be decreasing regardless of where you monitor it. You must be telling it to go backwards, though. You would be able to put the units into m/min in the drive (or a multiple thereof) and read directly - this will still be negative though. Either multiply by -1 or do it on the hmi. You could reverse the servo (see my first post) and save yourself a job. Pp -
Hello When you say cw, is that looking at the shaft or from behind the shaft. Looking at the shaft, cw is reverse hence negative values. Pn00 (I think) in the drive swaps to cw being forward. The axis current position appears in the 'axis operating input' memory area automatically; you don't need to use an Fb. I use ncf often, and never use the fb's. I've made an xls to generate all the axis and ncf symbols If you want it? Pp -
Hello Andy Don't confuse the CP1E with the new CP1LL-E and CP1LM-E. These are CP1L and CP1LM equivalents, but with ethernet in lieu of USB. Pp -
Hello Herewith my comments: 1. I don't know what the ADD instruction on the ENO is supposed to be doing 2.The DistanceBetweenPulses is a REAL, so needs to be entered in the format +1.0 3. The Pulse and Running parameters need to be something other than Always Off 4. The other addresses are all 0; the inputs need populating, the outputs are optional (but the result will appear in one, or both, of them 5. Bare in mind, this was an example rolling average FB; it won't produce wotsits/hour 6. The 'Tweak' parameter was intended to give a bit of calibration; +1.0 yields no calibration will be applied, +1.1 will give 10% over. Hope this helps point you in the right direction. Pp -
The oneshot fb is nested; don't worry about it. The idea of a fb is to encapsulate some code so you would rarely (never) address its internal memory. Anything you need from, or presenting to the outside world would be presented as an input or output parameter. This is the case on the example fb provided. Clear as mud? Pp -
Invoking the FB in your ladder will allow you to attach the 'real-world' addresses to the FB via the Input and Output parameters. Have you got the FB in your ladder yet? It's fairly self-evident once you have. Pp
Omron NQ HMI
in Omron
Posted