panic mode

MrPLC Admin
  • Content count

  • Joined

  • Last visited

Community Reputation

146 Excellent

About panic mode

Contact Methods

  • Website URL
  • ICQ 0

Profile Information

  • Gender Male
  • Location Mississauga, ON
  • Country Canada
  • Interests many...

Recent Profile Visitors

13301 profile views
  1. Data Types for MAM instruction

    i know, they don't call Missouri "show me state" for no reason...   
  2. Data Types for MAM instruction

    That's the thing... as already mentioned, COP does not do any conversion.... COP output is just a bit-by-bit copy of the source... possibly to a variable of different type. that's it... Source value would have to already be in a correct format (bit-by-bit). If that is the case, one can use COP to simply transfer the value to REAL (from some other data type...). When format is not the same, one need to do a conversion. For some conversions there are built in instructions. For others, one may may have to roll-up the sleeves and write own conversion code.   
  3. Data Types for MAM instruction

    of course... MOV is doing implicit casting (data conversion) when source and destination are not the same type. basically it tries its best to figure out how to fit data from source into target and still represent (in target format) as close as as possible resemblance of source... which can involve rounding etc. but result  here may not be always what you wanted - after all you are not handling the conversion, you are passing it down to MOV to do the "figuring out" for you. and like anything unchecked, that can go wrong...  COP does not interpret data... result is a bit-by-bit copy. but REAL type is encoded. so placing encoded value into a variable that is not associated with the encoding process, will lead to display of something in wrong format and hence appear as gibberish...but it is not. the meaning can be recovered by treating it correctly (applying decoding process) as outlined in IEEE754.   5 and 5.0 are two very different values.  first one is an integer, and in case of DINT it is stored in memory as 2#0000 0000 0000 0000 0000 0000 0000 0101 or 16#00000005 the later one is REAL and it is stored in memory as 2#0100 0000 1010 0000 0000 0000 0000 0000 or 16#40a00000 viewing 5.0 as integer will show up as 1084227584 because data format is ignored. this is not gibberish... it is interpreted as wrong format and hence displayed incorrectly. same goes the other way. displaying DINT value 5 as REAL will show up as 5.877475E-39 because data format is ignored again. MOV appear to be a "better" choice since to uninformed result looks more like the source. and that may be the case in some cases. But reality is that such data conversion is very limited and produces data loss or could even lead to program hang when you least expect it (after all it "used to work", at least for some values...). using COP or equivalent is common in data transmission since channel often can only handle (stream of) bytes. it is irrelevant if they represent inputs or outputs or REAL or array or ENUM or JPG or text or anything else... original (whatever) > COP > transfer > COP back > correct replica of original but whatever the case is one need to restore the correct format... and view/interpret as correct data type.
  4. Outputs/Coils will not turn on

    is this part of the program scanned? no MC instructions? to verify, you can add a check. for example add another rung next to this one, and increment D register on every scan. if the value does not change, you know that logic is simply not processed.... 
  5. by definition bistable valve is retentive... so there is no need to holding circuit. wire it correctly and pulse one or another (but not both) solenoids and you are good.
  6. gee... i did not see Apacs since 90's. it was a Mosaic project in Bartow FL and i was still a young chap... 
  7. sequences programming in ladder

    if you don't care that steps are not sequential, simply add new step... like 19470... and your sequence becomes 0>1>19470>2>3>4.... this means very little change to existing code. if you do want to make them ordered, you will either need to edit code for all following steps or you will need to plan in advance and leave some spares. in the old days of BASIC it was common to use line numbers that are multiples of 10 (10, 20, 30, ...) so that if you need to insert something, there are few (nine to be exact) spare values for any unexpected situations.  
  8. sequences programming in ladder

    it is a simple state machine, if you don't like bit shifting (or any other bit manipulation), then stick with integer as a step number. it is all the same... steps do not need to be in order or consecutive. you can have state machine that only uses step 0, 1, 27, 444, 2019, 33 if that is the way you like it.  
  9. Help me out to understand Graphic Designing in Omron NB HMI.

    and it looks like attachments are working again. sorry, have no tip about original question about button image being distorted.  perhaps try to use embedded image instead of default raised border. then standardize on 1-2 or so different sizes.
  10. Forum problems

  11. Help me out to understand Graphic Designing in Omron NB HMI.

    looks like attachments are busted again... test:    
  12. Siemens S7 RFID Tag Reader With Mitsubishi FX3U PLC

    i don't see how this question could be any less specific... why not state what is the exact PLC, RFID reader model, kind of interface reader supports and network options PLC has?
  13. Encountering my first Siemens PLC

    well... Siemens software is synonym with headache.  if you have to use it, getting familiar with it is a good idea. it is slow so installing it in VM will make it even slower. but this used to be the way to go simply because we used to work with many brands and installing it on host could and did interfere with the other software products. so it is not a bad idea to use separate machine or at least make a system image... please note i have not used it in a while (except running some demos 2-3 years ago) and i am perfectly cool with that.
  14. STRING data type

    variables and constants are memory locations accessible by name. literal type is neither. it is a hardcoded value of whatever type if today=="Friday" then     MsgBox("almost there...") endif unlike today, "Friday" is a literal... it is a hardcoded value that is not accessible by name.   same goes for any other data type (INT, REAL, BOOL...) if error=TRUE then  TRUE is a literal, error is either a variable or constant   A= B + 7 A is a variable (this is an assignment and if it was a constant, this line would cause a fault), B could be either a constant or variable, 7 is a literal
  15. Messung PLC

    contact manufacturer: