j.brophy@corkillsystems

MrPLC Member
  • Content count

    39
  • Joined

  • Last visited

Everything posted by j.brophy@corkillsystems

  1. EIP over Eithercat bridge NX1P2-9000

    I'm wanting to use the Danfoss mct10 software to directly program the drives via Eithercat. Ethercat over MCT10 is possible but it is not like in Ethernet IP, where the MCT10 connection runs in parallel to the bus with multicast packets. In Ethercat the information is implemented in the bus telegrams and It seems omron does not suport EoE messaging. I would have to capture multicast packets convert them and send them over Eithercat as telegrams in honesty i dont know if this is a thing I have access to with omron. The Danfoss option card (MCA123) when fitted to a FC automation drive supports EIP to Eithercat (EoE messaging) by bridging multicast packets using the plc as a gateway problem is omron does not support it yet and I don't know if it is in their plans. You can see a video here of it in operation with a Bechoff plc using a EL6601 terminal as a bridge: https://www.dropbox.com/s/27csm7z3m1861hr/MCT10_TC3_Ethercat.mp4?dl=0 Yes I can use EIP to program the drives but there is a lot of advantages in using Eithercat with a large network but doing it directly with the plc results in scaling issues number formats hex codes bla bla... so much nicer to do it with native danfoss tools because of this. ON a side note the danfoss software codes are free if you talk to Danfoss rep just they won't give you feature unlocker codes such as firmware flashing/ editing and oss creator tooling unless you are oem or partner like us. The feature unlocker codes require you signing some documents as you can create drives firmware exceeding 500hz that would class them as dual/ military use and if ended up in a country making enriched uranium you likely would get in big trouble so there is some security measures they ask you to implement. I was involved in some of the features in firmware with the software developers in Estonia when the FC series drives come out and also with the wifi based LCP's and to some extent the fc280 but more with feedback and bugs.                      
  2. latest cxone installer ?

    HI I have cxone v4.4 dvd is there a later image so I don't have to do all the updates after install every time?
  3. NS screen programming over mobil network

    sorry for the late reply missed this.   The touch screen is 192.168.250.10 The plc is 192.168.250.1 The router is set to 192.168.250.254 The gate way is set to 192.16.250.254 if it was not the hosted web page would not work on the touch screen from the vpn over the wan.
  4. multifunction button NA5

    Hi In the NB and NS screens there was the ability to have a multi function button operating as a button and as a data lamp in the NA screen there does not seem to be this function or am i missing something? I can't create a button with more than two feedback states by the look of it and I can't add a variable to a datalamp.   ultimately I'm after the following for example : No image or colour (shows valve is offline) red open green closed blue opening orange closing yellow open fault purple close fault. Flashing to show it is in manual mode (in any of the above states) touch indication to my plc            
  5. Buttons with graphics in NA

    you can't have odd shaped buttons they are limited the standard round/ elipse and rectangle,
  6. Buttons with graphics in NA

    So I have created created some graphics for my display but it seems I cant use them as buttons directly. It looks like I can only use images or create image-less buttons on top of my graphics but I'm unable to actually use them as buttons directly or am I missing something ? I see that I can view code of the background page and maybe assign a subroutine or event to that grouped object but it seems like a long winded stupid option.    
  7. Sysmac Studio Improvement Request

    Ability to use grouped objects as buttons and bitlamps as opposed to just graphics jpg png etc.. The ability to apply events to all items in the grouped object would also work at least for buttons.    
  8. Buttons with graphics in NA

    Yes Omron France and one of the screen demos online have these graphics there is also a NS library that was provided by my local Omron people. i have heaps of buttons and switches lamps  and generic stuff but it would be nice to use my own created objects or some way to export them to an image  
  9. Buttons with graphics in NA

    Yes that works for an image but not for graphics created in Sysmac studio I cant add events to graphics as it seems. I have drawn an object grouped it and stored it as a custom library object but I cant seem to use my graphics or the built in graphics for that matter. I'm guessing the only way to do it is to create a subroutine or event for the page specify the element or object name for custom graphics but I'm not really sure how to do this or if I can. As you see below I have the grist case object highlighted and showing the events and property's but I can't add events and actions to it. I can make it visible based on an variable in the properties window but i cant add events to it. I cant use the created graphics as an image either from creating a button or image object what I could do is print screen the graphics save it as a png /jpeg etc but in this case it wont work. As the image is square and my mill auger on an angle would overlap the gristcase image button as I cant just use the image as the button the background of the image also becomes part of the button. For an example If I just create a single graphics element (a circle for instance) I can create an event and action but if I grouped two circles together into a grouped object I can't create an event for the object.     can create event: Can't create event:
  10. NA touch screen graphics library

    Is there a extra or external graphic library for use with sysmac studio? The designs of buttons etc are quite limited to the NS touch screen built in options.  
  11. Sysmac studio download

    Yip I downloaded the installer from your link and it installed with out the directx issue as i had with installer 1.43 .   I then updated to the latest using the updater and no issue with directx.
  12. Sysmac studio download

    My computer hdd failed and I have a real old copy of sysmac studio. Not wanting to do a day worth of updates as the omron site is slow as hell can I download the 30 trial standard edition and use my licence to make it full.
  13. Sysmac studio download

    Previously on my pc I had installed Sysmac studio but with the latest installer 1.43 it says I need a directx 11 capable video card when trying to install from fresh. Is this a new requirement as it worked previously on the same computer I was installing from an older installer is there a way to bypass this?
  14. please you help me, use a function block to set a password for plc Omron

    this is a way to set a password in a cpm1a through ladder code
  15. memory adressing method questions.

    I guess yes it took longer to write than try but in my defence i was at home not at work at the time Thanks for your reply I'm on the right track now.
  16. socket service to datamax /zebra printer sample

    ok so the title says it all I have made a program to transmit data to a datamax or zebra printer using socket service but I can't seem to get it to work. It has to be something silly as the code looks robust enough. I believe there is a software called multiway that i was told to download to capture tha packets but im not getting that far as i'm unable to sucessfully open a socket and I don't know why. would someone be able to help me ? socket service printer.cxp
  17. CX-Programmer improvement requests

    does this apply in structured text ? eg: @TXD_CPU
  18. CX-Programmer improvement requests

    might be silly but: one shot TXD and RXD commands or output coils ability to diffu or difd a compare function
  19. CX-Programmer improvement requests

    That is not really what I'm asking for if I could type in a web address into the Omron software instead of an IP address the dns could forward it to the correct dynamic IP with cellular networks the IP address can change multiple times a day making connection and monitoring a nightmare. all of my sites have a dns server to log in to the touch screens and operate them over the net it would be nice to do the same to program/ monitor from CX programmer. as a work around could I use the lmhosts file in windows to redirect a made up IP Address to a web page?
  20. Communication between CJ2M and Zebra Printer

    hand shake is used by the reverse command rxd i believe it also uses bits in the AR area request to send and clear to send it all ties together. I used txd_cpu commands in structured text to a zebra printer but and did not use any handshake what so ever and it worked fine. just be sure to fill in blanks in the text string worth ascii spaces or it will fail. As the txd_cpu command sends at the scan rate of the plc you could overflow the buffer of the serial port and truncate data as a quick hack I just added a program in ladder to step/ step next with diff up bits driving the txd commands in st and put a .2 second delay between steps. there is heaps of better ways to do this but it works as a hack and is suitable for our purpose. if someone else has a better idea i'd be intrested in this to make the code more robust. I used the plug in rs232 module in the front of a cj2. (* ascii print string setup*) IF P_On=P_On THEN; START_PRINT_STRING_DELIMITER:= 'N$N'; TITLE_STRING:= 'A50,20,0,2,2,1,N,"Dynes Transport Docket"$N'; TRUCK_NUMBER_STRING:= 'A100,40,0,2,2,1,N,"Truck Number AA"$N'; TANKER_NUMBER_STRING:= 'A100,40,0,2,2,1,N,"Truck Number BB"$N'; TRAILER_NUMBER_STRING:= 'A150,60,0,2,2,1,N,"Trailer Number CC"$N'; MONTH_NUMBER_STRING:= 'A200,80,0,2,2,1,N,"Month DD"$N'; DAY_NUMBER_STRING:= 'A250,100,0,2,2,1,N,"Day EE"$N'; HOUR_NUMBER_STRING:= 'A300,120,0,2,2,1,N,"Hour FF"$N'; SILOTEMP1_NUMBER_STRING:= 'A350,120,0,2,2,1,N,"Silo Temp GG"$N'; SILOTEMP2_NUMBER_STRING:= 'A400,120,0,2,2,1,N,"Silo Temp HH"$N'; LITRE_TRUCK_STRING:= 'A450,140,0,2,2,1,N,"Litre Truck II "$N'; LITRE_TRAILER_STRING:= 'A500,140,0,2,2,1,N,"Litre Trailer JJ"$N'; SEAL1_NUMBER_STRING:= 'A550,140,0,2,2,1,N,"Seal Number KK"$N'; SEAL2_NUMBER_STRING:= 'A550,140,0,2,2,1,N,"Seal Number LL"$N'; BARCODE_STRING:= 'B600,180,0,3,3,7,50,B," MM"$N'; END_PRINT_STRING_DELIMITER:= 'P2$N'; ELSE; END_IF; (*insert data into string*) (* truck number string insersion*) TRUCK_NUMBER_STRING_INSERSION_POINT:= FIND(TRUCK_NUMBER_STRING,'AA'); TRUCK_NUMBER_STRING_OUTPUT:= REPLACE(TRUCK_NUMBER_STRING,TRUCK_NUMBER,2,TRUCK_NUMBER_STRING_INSERSION_POINT); (* trailer number string insersion*) TANKER_NUMBER_STRING_INSERSION_POINT:= FIND(TANKER_NUMBER_STRING,'BB'); TANKER_NUMBER_STRING_OUTPUT:= REPLACE(TANKER_NUMBER_STRING,TANKER_NUMBER,2,TANKER_NUMBER_STRING_INSERSION_POINT); (* trailer number string insersion*) TRAILER_NUMBER_STRING_INSERSION_POINT:= FIND(TRAILER_NUMBER_STRING,'BB'); TRAILER_NUMBER_STRING_OUTPUT:= REPLACE(TRAILER_NUMBER_STRING,TRAILER_NUMBER,2,TRAILER_NUMBER_STRING_INSERSION_POINT); (* month number string insersion*) MONTH_NUMBER_STRING_INSERSION_POINT:= FIND(MONTH_NUMBER_STRING,'CC'); MONTH_NUMBER_STRING_OUTPUT:= REPLACE(MONTH_NUMBER_STRING,MONTH_NUMBER,2,MONTH_NUMBER_STRING_INSERSION_POINT); (* day number string insersion*) DAY_NUMBER_STRING_INSERSION_POINT:= FIND(DAY_NUMBER_STRING,'DD'); DAY_NUMBER_STRING_OUTPUT:= REPLACE(DAY_NUMBER_STRING,DAY_NUMBER,2,DAY_NUMBER_STRING_INSERSION_POINT); (* hour number string insersion*) HOUR_NUMBER_STRING_INSERSION_POINT:= FIND(HOUR_NUMBER_STRING,'EE'); HOUR_NUMBER_STRING_OUTPUT:= REPLACE(HOUR_NUMBER_STRING,HOUR_NUMBER,2,HOUR_NUMBER_STRING_INSERSION_POINT); (* silotemp1 string insersion*) SILOTEMP1_STRING_INSERSION_POINT:= FIND(SILOTEMP1_NUMBER_STRING,'FF'); SILOTEMP1_STRING_OUTPUT:= REPLACE(SILOTEMP1_NUMBER_STRING,SILOTEMP1_NUMBER,2,SILOTEMP1_STRING_INSERSION_POINT); (* silotemp2 string insersion*) SILOTEMP2_STRING_INSERSION_POINT:= FIND(SILOTEMP2_NUMBER_STRING,'GG'); SILOTEMP2_STRING_OUTPUT:= REPLACE(SILOTEMP2_NUMBER_STRING,SILOTEMP2_NUMBER,2,SILOTEMP2_STRING_INSERSION_POINT); (* litre truck string insersion*) LITRE_TRUCK_STRING_INSERSION_POINT:= FIND(LITRE_TRUCK_STRING,'HH'); LITRE_TRUCK_STRING_OUTPUT:= REPLACE(LITRE_TRUCK_STRING,LITRE_TRUCK_NUMBER,2,LITRE_TRUCK_STRING_INSERSION_POINT); (* litre trailer string insersion*) LITRE_TRAILER_STRING_INSERSION_POINT:= FIND(LITRE_TRAILER_STRING,'II'); LITRE_TRAILER_STRING_OUTPUT:= REPLACE(LITRE_TRAILER_STRING,LITRE_TRAILER_NUMBER,2,LITRE_TRAILER_STRING_INSERSION_POINT); (*seal1 number string insersion*) SEAL1_NUMBER_STRING_INSERSION_POINT:= FIND(SEAL1_NUMBER_STRING,'JJ'); SEAL1_NUMBER_STRING_OUTPUT:= REPLACE(SEAL1_NUMBER_STRING,SEAL1_NUMBER_ASCII,2,SEAL1_NUMBER_STRING_INSERSION_POINT); (*seal2 number string insersion*) SEAL2_NUMBER_STRING_INSERSION_POINT:= FIND(SEAL2_NUMBER_STRING,'KK'); SEAL2_NUMBER_STRING_OUTPUT:= REPLACE(SEAL2_NUMBER_STRING,SEAL2_NUMBER_ASCII,2,SEAL2_NUMBER_STRING_INSERSION_POINT); (* barcode string insersion join strings together for barcode*) BARCODE_NUMBER:=CONCAT(TRUCK_NUMBER,TANKER_NUMBER,TRAILER_NUMBER,LITRE_TRUCK_NUMBER,LITRE_TRAILER_NUMBER,SEAL1_NUMBER_ASCII,SEAL2_NUMBER_ASCII); BARCODE_NUMBER_STRING_INSERSION_POINT:= FIND(BARCODE_STRING,'LL'); BARCODE_STRING_OUTPUT:= REPLACE(BARCODE_STRING,BARCODE_NUMBER,2,BARCODE_NUMBER_STRING_INSERSION_POINT); (* end string insersion*) (* Send print string contents to printer*) IF PRINT_STEP_NUMBER>10 THEN; if TRUE=TRUE THEN; ELSIF PRINT_STEP_NUMBER=20 THEN; TXD_CPU(START_PRINT_STRING_DELIMITER); ELSIF PRINT_STEP_NUMBER=30 THEN; TXD_CPU(TITLE_STRING); ELSIF PRINT_STEP_NUMBER=40 THEN; TXD_CPU(TRUCK_NUMBER_STRING_OUTPUT); ELSIF PRINT_STEP_NUMBER=50 THEN; TXD_CPU(TANKER_NUMBER_STRING_OUTPUT); ELSIF PRINT_STEP_NUMBER=60 THEN; TXD_CPU(TRAILER_NUMBER_STRING_OUTPUT); ELSIF PRINT_STEP_NUMBER=70 THEN; TXD_CPU(MONTH_NUMBER_STRING_OUTPUT); ELSIF PRINT_STEP_NUMBER=80 THEN; TXD_CPU(DAY_NUMBER_STRING_OUTPUT); ELSIF PRINT_STEP_NUMBER=90 THEN; TXD_CPU(HOUR_NUMBER_STRING_OUTPUT); ELSIF PRINT_STEP_NUMBER=100 THEN; TXD_CPU(SILOTEMP1_STRING_OUTPUT); ELSIF PRINT_STEP_NUMBER=110 THEN; TXD_CPU(SILOTEMP1_STRING_OUTPUT); ELSIF PRINT_STEP_NUMBER=120 THEN; TXD_CPU(LITRE_TRUCK_STRING_OUTPUT); ELSIF PRINT_STEP_NUMBER=130 THEN; TXD_CPU(LITRE_TRAILER_STRING_OUTPUT); ELSIF PRINT_STEP_NUMBER=140 THEN; TXD_CPU(SEAL1_NUMBER_STRING_OUTPUT); ELSIF PRINT_STEP_NUMBER=150 THEN; TXD_CPU(SEAL2_NUMBER_STRING_OUTPUT); ELSIF PRINT_STEP_NUMBER=160 THEN; TXD_CPU(BARCODE_STRING_OUTPUT); ELSIF PRINT_STEP_NUMBER=170 THEN; TXD_CPU(END_PRINT_STRING_DELIMITER); ELSE; END_IF; ELSE; END_IF;
  21. structured text equalivant of diff up ?

    how would create a diff up in structured text?
  22. DANFOSS DRIVE 2 WIRE COMMS

    Has any one written a program to control a danfoss drive via 485 using non protocol based communications of the serial port for the built in danfoss vlt protocol? Im looking at linking multiple plc's with a danfoss drive using one serial port per node and if someone has done it before it would make easy to just add to it and have non protocol comms between the plc's. is omron going to have this protocol added to there plc line up? as i see some of their screen software supports the built in danfoss vlt protocol for comms.
  23. dupilicated outputs/inputs with universal program

    I under stand that you can use task and break points to ignore parts of the program then it wont effect any thing as it will miss the part of the program with the local output on the nodes recieving the broadcast. from what i understand i may be able to use a jump command or tasks but i have no experience with either (we have just moved from the cpm1a plc) and i beleve i cant put my program into a jump because i are using steps in the program as i tried to put my program into function blocks but i had that problem. I dont really see a way around this problem unless the adresses were transcribed to different locations upon recieving them on another plc apart from skipping code some how. i have attached my sample program i have tided it up dramitically if i pull out the stuff specific to each node from the program and write to individual nodes it operates but as one program in all it fails to read or write inputs or outputs from either device. many thanks for your help but i may be at an end at least im not going mad and thaught i was doing something wrong. SAMPLE_2WAY_.cxp
  24. dupilicated outputs/inputs with universal program

    Hi there I have a problem that i have set up a universal program that switches nodes in a pclink setup using inputs apon first scan flag this was so that i could make a universal program that i could have in every plc in a pclink setup and i have theritically doubled up coils ill explane: I have a certain slave node 1 in the system which uses 3100.00 for a common address space for broadcasting to the other nodes. so the program has a ladder with say input 0.00 operating 3100.00 In the other nodes they have 3100.00 as a input to operate something else say output 100.00 on every plc. What the problem is that other node's that has the input 3100.00 also because the program is universal would have 3100.00 as an output for the 1st slave node which turns off the output locally as that part of the program is notbeing used the output coil 100.00 coil turns off/on at great speed in every node except slave node 1 when the output stays constant from slave node 1. I dont have two coils as per say but you could consider the network input to the other nodes as having a network operated coil output with address 3100.00 in them. I could be doing something wrong but i cant get two way communications to work with a universal program that i program every node in the chain with the same program. I have a cp1l plc so i cant have tasks in it an get around the problem that way by ignoring the output part of the program. how would i over come this problem?
  25. dupilicated outputs/inputs with universal program

    i see what you are doing a bit smarter than what i come up with but it will still logic race as mine does after the end instruction you have the output 3109.00 as a output to broadcast to all the other nodes if the program were in the master node. if that program were in any other node it would still have that coil in it for the master node but it wont be operated so it reads the network 3109.00 and then scans down to the master part of the program and will turn off again as the coil for the master part output of the program in the slave node wont be on (turn the coil off locally). this is what i beleve is happening in my case. if you output 3109.00 from the master but read it as 3509.00 (for example) in the other nodes this would not happen but you cant do that. as you could turn on 3109.00 on the slave and not effect the transmission from the master broadcast on 3109.00 but recieved on 3509.00. im not trying to operate my adress 3109.00 locally but it is in the program for the use by the specific master node and will be turned off in all others locally. how i see it is that the program will read the input in the slave (from the master) then it will scan through the program and get to the master part and turn it off again. correct me if i am wrong but effectivly i have 2 coils in the program (theritically) one being network operated and one being local both having the 3109.00.