MrPLC Member
  • Content count

  • Joined

  • Last visited

Community Reputation

3 Neutral

About AngryRobot

  • Rank

Profile Information

  • Country United States
  1. Thanks!  Looks like that is what I need.  Luckily I think we've been able to redesign the machine so that I won't have an individual device on each fixture now, so it has simplified things for me.
  2. Is it possible to setup Ethercat parameters from within the PLC program?  I am facing a situation where a machine is going to have changeable tooling fixtures and each fixture is going to have an EtherCAT device on it.  I am guessing they will need to be setup to look like the same node to the PLC, but they will have different physical IDs and different settings for some of the parameter fields.  They will be the same device so they will have the same parameter fields, just different values in those fields. I can also get these devices with EthernetIP as the fieldbus option.  In that case I would always have a network error because the PLC would always see one of the devices missing from the network.  is it possible to enable/disable Ethernet connections from within the program logic to avoid the error?
  3. Addressing Bit Inside an INT

    It took me some time to get used to as well.  You are spot on with Sysmac having some quirks.  Once you get used to them though Sysmac really starts to feel like one of the best programming environments on the market- at least compared to Portal or Studio. I have gotten into the habit of just creating a BYTE, Word, Dword, and Lword union in each of my projects; and then I can just create symbols as whichever type I need as I go.
  4. Addressing Bit Inside an INT

    I still prefer using a union so that I can assign unique comments to each bit.
  5. Under each alarm table there are individual components like Name, Alarm ID, Alarm Code, etc.  I know these have to be saved as a VB structure behind the scenes, because the default alarm popup has each of these components on a different line; so its like they are using a text box and setting it equal to something like Alarm.Alarm1.Alarm_Code.  I just can't figure out what that structure is named or how to access it myself.  I'm still trying to create my own alarm popup window and customize it more than just putting an alarm display object on it and having everything in one row.
  6. DF7seg font

    Do you have Sysmac Studio installed?  If so then you should already have the font installed in your system fonts folder.  I'm not sure what the rules are concerning just giving the font away.
  7. NA screen acknowledge alarms on reset?

    Is it possible to access the alarm code?  I would just create my own display page, but I like being able to display the alarm code.   Edit: I guess I can just add them to a normal alarm viewer.  The layout on the pop-up screen just looks so much better than the alarm viewer objects though.
  8. NA screen acknowledge alarms on reset?

    I can't uncheck Acknowledge when I have the pop-up checked- but I still want to use the pop-up to display my alarm code.
  9. Is it possible to have alarms show as acknowledged and close the pop-up screen when the expression that triggers the alarm is no longer true?  I like resetting the alarm with a PB in the PLC, and its a bit annoying having to also acknowledge it.
  10. Accessing USB from VB on NA screen

    I might be able to do this by saving it to SD card in the PLC... more experimentation is needed.
  11. Does anyone know how you can access the USB drive from a VB script on an NA screen?  I need to run a script to create a CSV file, but I can't figure out how to direct it to the USB location.
  12. NA Broken Line Graph

    I ended up changing to a structure that contains an array for the captures and strings for a date and time stamp.  Then I created an array of these structures.  This lets me easily save the data, and move it into a "display" structure to show on the HMI.   But now I've also found out they want to be able to pull this data from the HMI.  So I've hit a wall again.  I tested with using a data group to log it to a CSV file, but that can only look at one element of the capture array in one element of the structure array at a time.  I don't see any way to have it log the entire structure at once.
  13. Cognex DataMan 262

    I'm not familiar with that Cognex scanner, but the I/O mapping looks pretty much identical to a DM60.  Here is a quick example project showing a structure and the variables to communicate to a DM60.  There is no actual programming in it, just the communication setup; but there really isn't much to programming for these things.  The data from the scanner comes in as a string, and then you turn on the acknowledge bit once you've moved the string into a permanent data area. Dataman Structure.pdf Cognex Example.smc2
  14. NA Broken Line Graph

    I'm not sure doing it by time stamp will work though.  I'm pretty sure that will continue to capture data between different parts as if they were still part of the same data grouping.  So all of the parts would blend together into one overall trend curve; but I need to be able to display the specific curve for each individual part. I think I came up with something that is going to work... but it wont be the most memory friendly solution.  I created a two-dimension array, the first dimension is the 50 parts I need to save data for and the second is a 16 element dimension that saves my capture points.  Then I use a WHILE statement to create a pseudo-stack and shift everything through it; then once its been shifted I move my just captured data into the very first dimension and element of the saved data array.   IF test3 = TRUE THEN     Pointer:=INT#49;         WHILE Pointer <>INT#0 DO         MemCopy(Save_Data[(Pointer-1),0], Save_Data[Pointer, 0], UINT#16);         Pointer:=(Pointer-INT#1);         END_WHILE;     MemCopy(Capture_Data[0], Save_Data[0,0], UINT#16);     test3:=FALSE; END_IF;            
  15. NA Broken Line Graph

    So I was finally able to grab a PLC and HMI off the floor to do some testing with.  It looks like the Broken Line graph will do what I need if I push everything into an array.   But in order to "save" the last 50 good graphs and the last 50 failures I am going to have to create 100 individual arrays to push the data into when it is no longer the "current' data.  That's going to be pretty messy.  Is there a way to create an array of arrays?  So I could just say push Current_Data_Array into Saved_Data[0].