Nate Hammersmith

MrPLC Member
  • Content count

    19
  • Joined

  • Last visited

Posts posted by Nate Hammersmith


  1. I am trying to create an Alarm handler for an NA5 HMI that can tell the end-user the 1SAN Drive AL Status code and an Annunciation according to the manual: I621. I already am using a similar method to use MFaultLvl.Codes in a Case statement that creates a message found in motion controller manuals. Ie. 16#6449: Fault_Axis0 := '1S Axis Immediate Stop Input';

    I want to use the AL Status to create messages based on the Hex Code generated by the Alarm ie 16#20: DriveAlarm_Axis1 := '1S Overload Error'; 20hex being the AL Status from the Drive. However I  cannot find how to access AL Status from the Troubleshooter.

     

    Thanks


  2. Thanks for the advice,

    I found a way to do this in ladder, its just a couple more steps.

    To review: I have a FB that places an integer into an array that indicates which alarm is active. This is called "Cyl_Alarm". To do what I was asking about, I used a

    AryCmpGTV(Cyl_Alarm[0], Int#16, Uint#0, Cyl_Alarm_Active[0])

    The Cyl_Alarm_Active is a new array of bools produced by the array compare. I then do an ArySearch after the compare using the new array:

    ArySearch(Cyl_Alarm_Active[0], UINT#16, Bool#True, Active_Alarm_Pos, Active_Alarms_1). The Active_Alarms_1 variable is the count of active alarms within the Array Search. This can easily be compared against to then turn on my Alarm On Bit. 

    I have 60+ Alarms each with different statuses with the alarm. I break them up into 16 arrays for HMI Indicators and pages. 

     

    Appreciate the Help!

     

    Nate

     


  3. Hi all!

    This maybe a simple question but my brain is not allowing me to do it. I have an array variable of INT I use for alarms. I want to compare the values in the array variable to make sure they are all zero. If they are not zero I want to turn on an alarm. I have messed with the Arrary Compare value instructions (AryCmpGTV, AryCmpLEV Etc.) The goal is to monitor all the values in the array and if one becomes greater than zero, I know that an alarm has occurred. In CX, I use 2 in-line compare statements; a greater than Zero and less than or EQ to 'some value' depending on how i split up the alarms. How can this be done in Sysmac?

     

    Nate


  4. Hi All,

        I am working on a system that uses multiple Ethernet IP devices to control Pneumatic valves and D I/O. We have integrated several (smaller systems) with success. However, these systems are using a large amount of network words. One system uses 210 Byte Produce and 210 Bytes Consume. My Current count of these systems on one machine is Six masters. I need a total of 2,520 Bytes plus some for other devices in my network configurator.  My controls vendor told me I could expand the network by adding a CJ1W-EIP21 Card to help run these masters. After about 24 Hours of reading the Manual w465 I still dont quite understand how I am supposed to run these valves with this card or with Tag Data Links. Currently I have a network config. with all my masters networked to a CJ1w-EIP21 Card and TagData Links that were setup through the Tag Data Link Wizard via Network Config. I need help setting up variables in the CJ2M_CPU33 using tag link data that will allow me to output data to these masters. All assistance and Information is much appreciated. 

     

    Nate


  5. We have both of those documents and we have went through the parts for trying to connect them via Ethernet IP. We still have not gotten it to work. We setup the IP on the Controller and the Network config for network itself and the two won't talk. When we go to monitor the controller from Network Configurator, it shows that it does not see it and the blinking lights on the controller say that it is not connected to the network.


  6. Hello All,

    we are trying to Network a CJ2M Omron controller to one a PCON-CA-42PWAI-EP-0-0 EIP controller from IAI. We can't get the two controllers to talk to each other. We did find that IAI at one point had a document on it, found here:  https://www.iai-robot.co.th/en/support/equipment/omron/02.php. However, that link for the document no longer works on IAI's site. Does anyone know  where we can find the document we need or just know what we need to do get these two controllers talking?

    1 person likes this

  7. 19 hours ago, Crossbow said:

    There's no reason I can think of why comments are not in the controller.  It's part of the source code which is transferred to the controller when you download, unless you choose not to download the source code.

    I've never seen that message from Sysmac Studio ever.  Used to see it a lot with CX-Programmer when the programmer didn't transfer the comments.

    What version of Studio?  Is everyone using the same version?

    Yes, everyone is using the same version. It also happens with the same computer uploading the program. I have an example of what is telling me.

     

     

    Comment Error.jpg


  8. Hello All,

    Slight problem, hoping its easy to fix. I have 6 projects on the floor with multiple programmers and laptops. When another programmer hops on a machine with a different laptop, my NX102-9020 says that the comments were not stored and cannot be retrieved. Is there a way to Store them in the PLC for upload without having to export comments and then import via CSV? Any help is appreciated. Note: I also lose my rung comments which I am most upset about on Really Really big programs.

     

    Thanks,

    Nate


  9. I now need to store more values in a more table like format and possibly use a scroll to view the additional records. Thoughts on how? The ability to create a table OR display the entire contents of an Array would be wonderful in the NA5 right about now. 

        One more small application question: when using stack push, what is the best way to cycle back through the stack with new data? I have tried using StackFIFO and used the same Num Variable as the stack push. Unfortunately, this logically pushes twice (once for the Stack push that I wrote to execute and another for the FIFO stack push that I wrote to decrement the Stack Num In order to keep writing new data to the HMI). I want to push the first value out of the stack after the data equals the Num value. Maybe some arithmetic on the Num Variable of the stack push to reset back to 1? 

        Finally, does anyone know why the Array[0} will not populate. I have to wait one cycle to see the stack in array[1] and array[0] doesnt want to populate.

     

    Thanks for any info in advance!


  10. An update of progress for the forum and a couple questions:

    Like Micahel suggested, I created a structure with the variables and datatypes i needed to record.Strcutre.thumb.jpg.3aaa637a262f35fb5facf

    I then created two variables in global:

    Variables.thumb.jpg.a56814856ae2d2e7eb30

    I wrote the Stack Push Logic and populated that variable that i created in order to store it in the array. Also wrote a clear in order to clear the stack if necessary.

    5eba97f14402e_CTlogic.thumb.JPG.565bcd3d

    Then I created the screen with data displays: each Object is tied to the variable in the structure as part on an array. An example expression within the data display assuming my PLC is called "Nylon" would be: "Nylon_Cycle_Time_History_Array(0).Cycle_Time_TS" .

    Capture.JPG


  11. I have an IAI servo that was sent to us with CC-link protocol. I have never in my life used cc-link and can find very little on the topic on integrating with an Omron CJ CPU. I am curious as to whether this has been done, or is even possible given the protocols Omron works with. And if so, what did you have to do to get the PLC to communicate via CC-link. Thanks in advance for the responses!


  12. On 4/29/2020 at 10:28 AM, Michael Walsh said:

    Personally, I would create a structure that matches what you want to display, then create an array of that structure for data storage.  Then I would make displays on the screen to show the data.  Right click on the Data Display object once you create it and then choose create duplicate objects to rapidly develop your screen.  You could then use the StackPush Function to push your data onto the stack when needed.

    Okay,  thanks for the reply Michael!

        I'll have to read up on the StackPush Function. To make sure I understand what you suggest:  When I create a structure "Data_History" with a member as "Cycle_Time", which is a Uint,  can I create an additional member for a Date_Time variable to time stamp the "Cycle_Time" and push those two elements together on the Stack in order two view both elements somewhat together on my NA5 via data displays? 

     


  13. I use something similar to show times of a machine running or not running. Unfortunately, I use multiple data displays on the HMI to represent N, NMInutes, NHours, an NDays. Like Michael said though. its gets to be convoluted.

     

    Edit: It is really easy to get away from the multiple data displays with using a single text data display with an Expression that would look like:

    NHours & ":" & NMinutes &  ":" Nsecs & "." &NTenthSecs

     

     

     

    Capture.PNG


  14. Does anyone have any idea how I can create a Data History though the NA screen. I know I can do a Data Log with a Data Set then use a Trend Graph but, I want to create the "Table Like" Data History found in the Omron NB screen. I use data histories for a UI to an operator to review previous Cycle Times, Poka Yoke values, and Temperatures monitoring with a time stamp as to when the data was recorded. Any ideas? 

    I am using a NX102-9020

    NA5 Screen