-
Content count
425 -
Joined
-
Last visited
Content Type
Profiles
Forums
Downloads
Calendar
Everything posted by innoaloe
-
What version is your CX-Programmer? I think instead of downgrading, you need to upgrade, since CX-Programmer is always backwards compatible.
-
You can also use MOV instruction to reset the timer. E.g. for your T0 with #30 preset, you can execute [MOV #30 T0] instruction when needed to reset the value. Then again, Mendon's suggestion is far better. Use the RTC
-
Sysmac Studio Improvement Request
innoaloe replied to BITS N BYTES's topic in NJ Series / Sysmac Studio
The answer is No, as far as I know... If you're redefining things inside a program then it's quite an issue, but in the variable table actually you can define an array not from index 0. Usually by default it will shown as e.g. ARRAY OF BOOL [0..9] for a BOOL array with size of 10. However you actually can change the Start and End Index as you want it, such as ARRAY OF BOOL[10..20] will also create BOOL array with size of 10, starting index from 10 -
You can make it without a Hardware (simulated axes), but don't think of it like a real Robot Programming software. Basically you create the Motion instructions to move the Robots and conveyors, then you Trace the positions of the axes using the DataTrace function. At the DataTrace function there are built-in libraries for some 3D Model definitions, including Delta Robot and Conveyor Belt. You playback the Traced Data and see the model move according to that data.
-
Your Encoder output is Differential Phase, so in good way you can use it for Up/Down or Pulse + Direction method. Let me clarify : Up/Down mode typically used for counters. You had one switch wired to Up Input and another one to the Down Input. You press Up switch, it counts Up by 1. You press Down switch, it counts Down by 1. Encoder has differential phase which means halfway when A is on, B starts to went On. Halfway when B is on, A starts to went Off. This means you will never have a proper Up/Down counting, only full of noise. Pulse + Direction mode : So one input is to receive Pulse (should be the 0.00 one) which you can wire either Phase A or B from the encoder as the counting input. The Direction input (0.01) is just a simple On/Off from a switch. When Direction input is off, the received pulse will be read as counting up. When Direction input is on, the received pulse will be read as counting down. You're not wiring both Encoder phase at the same time. That's why this method also typically won't be used for Phase A+B output Encoder.
-
Glad it's working okay. That might be the case if your tag file was an Array Variable. If you only display one index, the whole tag sets will still need to be read as a whole.
-
NB is using FINS communication which cannot handle Read Bit and Read Word at the same time. If you're having multiple Bit object on the screen, it can be seen updating fast since on a same communication time multiple addresses are taken at the same time. However after that it needs to request the Float data separately. The general rule mentioned in the manual is to limit number of variables you have on a single screen to avoid such display lags. Having lags up to 2 minutes like you said means either too many addresses to be read on a same screen (Word / Float addresses), or maybe your PLC program did delay the update of the said address. I had same issue with Rotary Encoder display update in NB, but unfortunately it is not solvable so far. It's the limitation on the hardware and software engine of the HMI itself. However it's not as bad as 120 seconds. Usually only around 300 ms max.
-
Omron CP1E is pretty cheap I'd say... Software is actually easy, but learning instructions maybe a bit complicated at times (Japanese love to write long manuals). Price-wise you can get a Lite version of the software (CX-One Lite) which supports CP1E series.
-
How to import Read/Write tags for Ethernet/ip connection in Sysmac
innoaloe replied to EB's topic in NJ Series / Sysmac Studio
I think what he meant is the AOP (Add On Profile) function available on Rockwell. It shows directly what are the "mappable" tags inside the device. Unfortunately with current Omron we only know the Input and Output tag byte size, and decode the meaning by ourselves from datasheet. -
Is CP1H with Ethernet option board (CP1W-CIF41) is capable to communicate More than one client?
innoaloe replied to Rishikesh's topic in CX-Programmer
What do you mean by "Client" here exactly? CP1W-CIF41 only supports FINS/TCP Server function, so if you're connecting it to a Client, it should be a FINS/TCP Client. It can receive 3 FINS/TCP Clients at max as far as I remember. A normal TCP Client socket service is not supported. -
That's should be how a Circular Counter works... since the set value is from 0 to 1000, if moved CCW from 0 it will rollback to 1000, vice versa. Also, the Differential Phase method is actually counting both rising and falling edge of Phase A and B. If your encoder is 100 pulse/rotation, one rotation will be counted as 400 pulse in the PLC. Assuming your Phase Z input in PLC 0.04 is not connected, it shouldn't autoreset the value by itself. About the reading getting stuck : Make sure there is no INI instruction execution which resets or presets the counter value.
-
WireShark capture of PC <-> Omron NJ via CIP protocol
innoaloe replied to zbyszek54's topic in NJ Series / Sysmac Studio
More like having too much free time, good Sir Lucky for me Omron got plenty of toys to play with... hahah... -
WireShark capture of PC <-> Omron NJ via CIP protocol
innoaloe replied to zbyszek54's topic in NJ Series / Sysmac Studio
Your very welcome -
WireShark capture of PC <-> Omron NJ via CIP protocol
innoaloe replied to zbyszek54's topic in NJ Series / Sysmac Studio
For Forward_Open, it will close the socket if certain inactivity has been achieved. I cannot find the exact value in the manual but it seems to be fixed around 2 minutes or so (I think it's the same with default TCP Linger / KeepAlive standard) For NJ, aside from UCMM / Forward_Open, you can also do Read/Write through Class3 Connection which enables to keep the socket alive unless you close it. For me, I always avoid to use Class3 though, since defining the Route Path sometimes can be a bit tricky. -
WireShark capture of PC <-> Omron NJ via CIP protocol
innoaloe replied to zbyszek54's topic in NJ Series / Sysmac Studio
Your very welcome. Regarding your question : 1. Logix5000 provides service with Svc Code 55H which returns the list of variables in the PLC. Does Omron NJ provide similar service ? Unfortunately No :D 2. is it possible (and reasonable) to increase the data throughput between HMI and Omron NJ using several concurrent connections (to overcome the limited CIP packet length) ? In the example I provided, after Reading or Writing I am closing the TCP Socket, thus also closing the ENIP Session. You can thus improve the throughput by keeping the Socket open if you need to continuously read/write data, avoiding to re-Register the Session. Keep in mind though that every few seconds you need to keep sending a packet to NJ eventhough Read/Write variable is not required, or else after certain timeout the NJ will think that the socket is inactive, Closing the Session automatically. I would prevent having multiple TCPClient connecting on the NJ (unless you're connecting to 2 different PCs) since it will reduce the overall throughput also -
A RS-232 Serial is always has a max of 256 Characters to be sent in a single instance. This does apply to TXDU instruction also, so 35 Characters is applicable.
-
Mitsubishi Built-In Protocol (Omron FINS Equivalent)
innoaloe replied to innoaloe's topic in Mitsubishi
Thank you @Mark- and @artichoke72, going to look into it. -
Hello, is there any reference for Mitsubishi built-in Ethernet protocol which similar to Omron FINS/UDP or FINS/TCP? Like a protocol used by HMI to access the PLC memory. Could anyone give reference, thank you.
-
Yes you are correct, that's the way it allocates
-
WireShark capture of PC <-> Omron NJ via CIP protocol
innoaloe replied to zbyszek54's topic in NJ Series / Sysmac Studio
Here you go : NJ_CaptureCIP.pcapng in this example, I access a variable named "TVAR" with type of INT, and initial value of 1000. At the Read Service Request (Svc Code 4C) you should see it returns ACK Service Code CC and the return value Variable type INT (C3) and Value of 1000 in Little Endian format (E803). At the Write Service (Svc Code 4D) you should see it returns ACK Service Code CD. I'm sending to the Variable type INT (C3) a Value of 255 in Little Endian format (FF00) -
Exactly, so you need to allocate two variables
-
Ouch... In my head I was thinking of SCU31-V1... yes, SCU41 had RS232 serial port. Port1 if I'm not wrong. All SCU unit supports TXDU instructions, including SCU41. Careful that Omron DB9 wiring is different from usual Serial DB9 standard (need to make proper cable). TXDU will be accessible if you set Port1 function to No Protocol mode
-
Read an array of strings from NJ to NA
innoaloe replied to Andy_P's topic in NJ Series / Sysmac Studio
Well... that's definitely annoying. Gonna try it this afternoon, thanks. -
WireShark capture of PC <-> Omron NJ via CIP protocol
innoaloe replied to zbyszek54's topic in NJ Series / Sysmac Studio
Give me a day to prepare. I'll make a single numeric variable Read/Write capture example using UCMM. -
Read an array of strings from NJ to NA
innoaloe replied to Andy_P's topic in NJ Series / Sysmac Studio
Weird, because I cannot find that SetItems function anywhere in a ListBox component, even on the latest NA firmware version (1.08). Can you perhaps post a screenshot when the Intellisense shows this function? Regarding changing type to Object instead of String, wouldn't CType function work? It is used to convert / cast types without copying it to a new variable